首先我先查询出用户表中相同的数据,sql是:select phone from app_user where phone is not null Group By phone Having Count(*)>1
然后我要删除这些相同的数据,于是我这样写:
delete from app_user where phone in(
select phone from app_user where phone is not null Group By phone Having Count(*)>1
) mysql提示报错:You can't specify target table 'app_user' for update in FROM clause,我就蛋疼了,我这sql没错误啊,反复执行还是报错,于是有道翻译一下什么意思:您不能为FROM子句中的update指定目标表'app_user'????你妹的,看不懂。然后查了下资料,得到最终解决办法如下。
delete from app_user where phone in(
select aa.phone from( select phone from app_user where phone is not null Group By phone Having Count(*)>1)aa)
对,就是这样解决了,别问我为什么 ,我TM也很奇怪,就是给查询结果起个别名,然后再从这个结果集中查一遍,然后从这里删除。