我知道之前已经问过这个问题(但不是这种方式,请耐心等待)。
我有一个表格,我需要按各种标准查找重复项并将它们全部列出,以便用户可以选择要保留哪些内容以及删除哪些内容。但所有这一切都没有让Mysql屈服。
我想出的方法是创建2个临时表,然后将它们融合为一个,然后删除前2个临时表。听起来很麻烦,但我无法想出任何其他方式。因此,每个临时表的查询可能如下所示:
CREATE TABLE `tmp_book_dup`
SELECT COUNT(title) AS count, id, title, localeLanguage, isbn, NULL AS author
FROM book
GROUP BY title, localeLanguage, isbn
HAVING COUNT > 1;
然后对于ISBN(甚至可能是第三个标准)也是如此。然后将它们融合在一起。
有比这更好的方法吗?除非我使用GROUB BY(无论我在算什么),否则我找不到重复项,这就是为什么我在2个表中执行它。我尝试过的一件事是在两个查询之间使用UNION而不是2个临时表,这似乎有效,但UNION需要稍长一些。