我试图删除name
相同的重复mySQL记录。我从这里的其他人那里找到了这个解决方案(是的,我以前搜索过了!)但它没有用。我在这里做错了什么?
DELETE FROM db_products USING db_products, db_products e1
WHERE db_products.id > e1.id
AND db_products.name = e1.name
我还尝试product_id
而不是id
,因为我调用了我的唯一ID,但它也引发了mySQL错误。
答案 0 :(得分:0)
最简单的方法是创建一个临时表并添加原始表中的不同值
SELECT DISTINCT * INTO db_products_temp FROM db_products;
验证后,删除原始表并将临时表重命名为db_products。
答案 1 :(得分:0)
可以有许多记录满足条件“db_products.id> e1.id”。这就是为什么不删除所有重复的原因。 请尝试以下查询。这可能有所帮助。
DELETE FROM db_products USING db_products, db_products e1
WHERE max(db_products.id) > e1.id
AND db_products.name = e1.name
group by db_products.id;