首页 > 数据库技术 > 详细

mysql的一个坑

时间:2018-04-12 14:47:26      阅读:200      评论:0      收藏:0      [点我收藏+]

在mysql的语法中。修改或者删除的时候不能直接调用子查询的结果集。需要先给子查询其别名。在调用。

比如:下面的去除重复项

DELETE FROM t_equipment_type t WHERE t.type = 2 
AND (t.type_code,t.type_name) IN (
  SELECT type_code,type_name FROM t_equipment_type
  GROUP BY type_code, type_name HAVING COUNT(*) > 1) 
        AND t.rec_id NOT IN (
  SELECT MIN(rec_id) FROM t_equipment_type 
  GROUP BY type_code, type_name HAVING COUNT(*) > 1)

这样会报错。

 

DELETE FROM t_equipment_type WHERE rec_id IN (
  SELECT b.* FROM (
    SELECT t.rec_id FROM t_equipment_type t  WHERE  t.type = 2
    (t.type_code,t.type_name) IN (
      SELECT type_code,type_name FROM t_equipment_type
      GROUP BY type_code HAVING COUNT(*) > 1) 
          AND t.rec_id NOT IN (
      SELECT MIN(rec_id) rec_id FROM t_equipment_type
      GROUP BY type_code,type_name HAVING COUNT(*) > 1) 
    ) b

 )

mysql的一个坑

原文:https://www.cnblogs.com/hongzq/p/8807445.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!