使用SQL删除表中重复数据(单字段):
1.查询重复数据:
SELECT
*
FROM
info_1688
WHERE
storeURL IN (
SELECT
storeURL
FROM
info_1688
GROUP BY
storeURL
HAVING
COUNT(storeURL) > 1
)
2.删除重复数据:
DELETE
FROM
info_1688
WHERE
storeURL IN (
SELECT
storeURL
FROM
info_1688
GROUP BY
storeURL
HAVING
COUNT(id) > 1
)
AND id NOT IN (
SELECT
MIN(id) AS id
FROM
info_1688
GROUP BY
storeURL
HAVING
COUNT(id) > 1
)
Mysql异常:you can’t specify target table ‘info_1688’ for update in FROM clause
解决方法:select的结果再通过一个中间表select,可以避免此错误
DELETE
FROM
info_1688
WHERE
storeURL IN (
SELECT storeURL FROM (
SELECT
storeURL
FROM
info_1688
GROUP BY
storeURL
HAVING
COUNT(id) > 1
) AS tab1
)
AND id NOT IN (
SELECT id FROM (
SELECT
MIN(id) AS id
FROM
info_1688
GROUP BY
storeURL
HAVING
COUNT(id) > 1
) AS tab2
)

本文介绍如何使用SQL查询和删除数据库表中的重复记录,并提供了一种避免异常的方法,即通过创建中间表来解决删除过程中出现的问题。
513

被折叠的 条评论
为什么被折叠?



