Php MySQL删除除NULL之外的重复行
我的数据库中有一个表Final,我想删除所有重复的行,除了 那些有空值的人; 我尝试了上述方法:Php MySQL删除除NULL之外的重复行,php,mysql,sql,sql-delete,Php,Mysql,Sql,Sql Delete,我的数据库中有一个表Final,我想删除所有重复的行,除了 那些有空值的人; 我尝试了上述方法: DELETE FROM Final WHERE event_id NOT IN (SELECT MIN(event_id) AS MinID FROM (SELECT * FROM Final) as x GROUP BY event_name
DELETE FROM Final
WHERE event_id NOT IN (SELECT MIN(event_id) AS MinID
FROM (SELECT * FROM Final) as x
GROUP BY event_name
AND event_name IS NOT NULL)
但是没有起作用
编辑
我的桌子看起来像:
id |珊瑚
1 |空
2 | 1
3 | 1加入表格怎么样
DELETE a
FROM Final a
LEFT JOIN
(
SELECT Event_name, MIN(Event_ID) MIN_ID
FROM Final
WHERE Event_name IS NOT NULL
GROUP BY Event_name
) b ON a.Event_name = b.Event_name AND
a.Event_ID = b.MIN_ID
WHERE a.Event_name IS NOT NULL AND
b.Event_name IS NULL
只需将事件_name NOT NULL部分移动到主子查询:
DELETE FROM Final
WHERE event_id NOT IN (SELECT MIN(event_id) AS MinID
FROM (SELECT * FROM Final) as x
GROUP BY event_name)
AND event_name IS NOT NULL
因为您没有关闭子查询的括号。在每个组中重复的列是什么?event_name是该列。。此列可能有1,2,1,4,NULL,NULL,2。。我想要1,2,4,NULL,NULL,我不认为这是你的问题,但如果可以的话,我建议使用backticks`作为表名和列名,以避免与mysql关键字或未来可能的关键字冲突。i、 e.从'Final'中删除我不确定是否理解您的解决方案。。我只有一个表final这与使用子查询的解决方案相同。尝试执行上面的语句,但请先做一些备份。您能提供示例记录以便我修改查询吗?表上可能有4-5条记录。如果执行上面的语句会发生什么?天哪,它就像一个符咒!!非常感谢你@JW。对不起,我迟到了!!