我正在尝试为以下内容编写查询
mysql db有两列数据如下
no id
1 1
1 2
1 3
2 4
3 5
3 6
4 7
5 8
我需要为以下条件编写查询
当“no”重复出现时,从数据库中删除所有那些“no”相同且“id”> id 的 min 的“no”
expected output for the above table
no id
1 1
2 4
3 5
4 7
5 8
最佳答案
DELETE a
FROM tableName a
LEFT JOIN
(
SELECT no, MIN(ID) min_ID
FROM tableName
GROUP BY no
) b ON a.no = b.no AND
a.id = b.min_ID
WHERE b.no IS NULL
反之,
DELETE a
FROM tableName a
INNER JOIN tableName b
ON a.no = b.no
WHERE a.id > b.id
关于mysql - SQL查询删除特定条件的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16730136/