SQL删除重复行在字段中查找相同的文本

时间:2015-06-04 09:58:20

标签: php mysql sql phpmyadmin

我正在使用phpmyadmin - joomla cms。 我有很多同名的文章。现在我要删除所有具有相同标题的文章。请告诉我查询如何删除具有相同标题的相同文章。

我使用了向我显示具有相同标题的文章数量的命令。

SELECT 
    title,
    id,
    COUNT(title) 
FROM 
    q3ept_k2_items 
GROUP BY 
    title 
HAVING COUNT(title) > 1

3 个答案:

答案 0 :(得分:1)

请试试这个,

为了保持最低的id值,

DELETE item1 FROM q3ept_k2_items item1, q3ept_k2_items item2 WHERE item1.id > item2.id AND item1.title = item2.title

为了保持最高的id值,

DELETE item1 FROM q3ept_k2_items item1, q3ept_k2_items item2 WHERE item1.id < item2.id AND item1.title = item2.title

如果您想提高一点性能,可以改变这种风格,

WHERE item1.title = item2.title AND item1.id > item2.id

WHERE item1.title = item2.title AND item1.id < item2.id

答案 1 :(得分:0)

SELECT DISTINCT title INTO temp FROM q3ept_k2_items;

DROP TABLE q3ept_k2_items;

RENAME TABLE temp TO q3ept_k2_items;

答案 2 :(得分:0)

delete from table where title not in (select distinct(title) from table)