我有一个标题重复的表,尝试查找时可以很好地查询它们。
这是表格和代码
表名称:documents
+---------- +--------+
| module_srl| title |
+---------- +--------+
| 6225 | test21 |
| 6225 | test |
| 6225 | test |
| 6226 | test3 |
| 6226 | test5 |
| 6226 | test6 |
+-----------+--------+
SQL查询:
SELECT title
FROM `documents`
WHERE module_srl = 6225
GROUP BY title
HAVING COUNT( * ) >1
ORDER BY `documents`.`title` DESC
显示1的结果,其中1个重复(我想)
标题
test
如何仅删除与module_srl = 6225
匹配的重复标题,而不删除原始标题。
答案 0 :(得分:0)
您需要列标识符来区分重复的列。
以下查询可以删除任何重复项,而不是限制为module_srl6255。如果要限制为6255,则可以进行编辑以添加where子句。
delete from documents
where document_srl in (
select document_srl
from (
select module_srl, min(document_srl) as document_srl
from documents
group by module_srl, title
having count(*) > 1
) t