码迷,mamicode.com
首页 > 数据库 > 详细

mysql的一个坑

时间:2018-04-12 15:29:26      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:having   col   let   去除   sql   调用   sele   重复   style   

在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的一个坑

标签:having   col   let   去除   sql   调用   sele   重复   style   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!