gpt4 book ai didi

mysql 根据 IN 语句中的配对值选择行

转载 作者:行者123 更新时间:2023-11-29 14:33:37 27 4
gpt4 key购买 nike

基本上我想做:

SELECT * FROM `table` 
WHERE ( `col1`, `col2`)
IN
[
SELECT `col1`, `col2`
FROM `table`
GROUP BY `col1`, `col2`
HAVING count(*) >1
]

我希望选择所有唯一的重复项及其实际重复项。但我怎样才能保持 col1 和 col2 之间的关系与 IN 查询相关呢?

我知道还有其他方法可以做到这一点。

一种方法是构建一个虚拟表,将所有相关条目移至其中,然后替换原始表。

另一个使用如下连接:

SELECT * 
FROM table t1
JOIN table t2
ON t1.id > t2.id
AND t1.col1 = t2.col1
AND t1.col2 = t2.col2;

但这大约需要 10 分钟才能完成:\

最佳答案

这将显示所有重复项,并排序在一起:

SELECT 
t.*
FROM
tableX AS t
JOIN
( SELECT col1, col2
FROM tableX
GROUP BY col1, col2
HAVING COUNT(*) > 1
) AS td
ON (td.col1, td.col2) = (t.col1, t.col2)
ORDER BY
t.col1, t.col2

(col1, col2) 上的索引将有助于上述内容 - 以及您的 Join 版本。

关于mysql 根据 IN 语句中的配对值选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9542246/

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