数据补齐

目标表:A表新增几列字段,B表中存在这几列的值,可以通过如下命令从B表中更新到A表

  1. update birth0414.k_info ki,
  2. birth0414.delivery_basic_info dbi
  3. set ki.mail_phone = dbi.mather_tel,
  4. ki.mail_person = dbi.mather_name
  5. where dbi.delivery_id = ki.delivery_id
  6. and ki.mail_city = dbi.city;

sql @num:=0 自定义自增序号

查询出的结果需要自定义排序,MySQL 可以使用使用@num:=0,

  1. select @num := @num + 1 sc, # 自定义排序
  2. s2.stu_no,
  3. s2.ssa
  4. from (select s1.stu_no,
  5. avg(s1.stu_score) ssa
  6. from score s1
  7. group by s1.stu_no
  8. order by ssa desc) as s2,
  9. (select @num := 0) t3;

image.png

条件相同,排名一致

排序,薪水相同的使其排名一致

  1. DENSE_RANK() OVER(ORDER BY salary DESC)

image.png

表异常

如果出现长时间某个表打不开,但其他表可以正常使用,执行下面两个命令即可

  1. select * from information_schema.innodb_trx; # 查询占用的线程
  2. kill 线程 # 存在删除

image.png