SQL 删除重复的行在字段中找到相同的文本
SQL Delete Duplicate rows find same text in a field
我正在使用 phpmyadmin - joomla cms。
我有很多同标题的文章。现在我想删除所有具有相同标题的文章。请告诉我如何删除具有相同标题的相同文章的查询。
我使用了显示具有相同标题的文章数的命令。
SELECT
title,
id,
COUNT(title)
FROM
q3ept_k2_items
GROUP BY
title
HAVING COUNT(title) > 1
SELECT DISTINCT title INTO temp FROM q3ept_k2_items;
DROP TABLE q3ept_k2_items;
RENAME TABLE temp TO q3ept_k2_items;
delete from table where title not in (select distinct(title) from table)
请试试这个,
为了保持最低的 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
我正在使用 phpmyadmin - joomla cms。 我有很多同标题的文章。现在我想删除所有具有相同标题的文章。请告诉我如何删除具有相同标题的相同文章的查询。
我使用了显示具有相同标题的文章数的命令。
SELECT
title,
id,
COUNT(title)
FROM
q3ept_k2_items
GROUP BY
title
HAVING COUNT(title) > 1
SELECT DISTINCT title INTO temp FROM q3ept_k2_items;
DROP TABLE q3ept_k2_items;
RENAME TABLE temp TO q3ept_k2_items;
delete from table where title not in (select distinct(title) from table)
请试试这个,
为了保持最低的 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