gpt4 book ai didi

sql - 快速获取 MySQL 中 2 列差异的方法

转载 作者:行者123 更新时间:2023-11-30 23:43:10 26 4
gpt4 key购买 nike

如何获取在另一列中没有匹配项的列的字段?

我试过:

SELECT table1.page_title 
FROM table1, table2
WHERE table1.page_title != table2.page_title

它会产生很多重复的字段,所以我做了一个:

SELECT DISTINCT table1.page_title 
FROM table1, table2
WHERE table1.page_title != table2.page_title

但它只是挂起。

非常感谢任何帮助,谢谢!

附言我这样做是为了为 mediawiki 的 MWDumper 工具创建一个排除列表。我需要它,以便当我导入输出的 sql 时,我当前的 wiki 条目不会被覆盖。

编辑:是的,它们是两张不同的 table 。每个都有大约 70,000 多条记录另外为什么我的查询很慢?如果有人可以澄清,我将不胜感激,这样我就可以了解原因 :) 再次感谢!

最佳答案

a 和 b 是不同的表吗,它们都有一个“page_title”列?

如果是这样,试试这个:

SELECT DISTINCT page_title FROM a
WHERE page_title NOT IN (SELECT page_title FROM b)

如果您只对删除重复项感兴趣(如果您只有一张表),那么有几种方法可以做到这一点,其中两种是:

SELECT DISTINCT page_title FROM a

SELECT page_title FROM a
GROUP BY page_title

GROUP BY 选项更强但更慢 - 您可以添加一个 HAVING 子句以仅选择那些出现的标题,例如超过两次:

SELECT page_title FROM a
GROUP BY page_title
HAVING COUNT(page_title) > 2

希望对你有帮助

(感谢 Aaron F 的评论)

关于sql - 快速获取 MySQL 中 2 列差异的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/905689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com