道歉:我的意思是重复项必须位于同一列中。
我有以下代码:
SELECT m.* FROM (
SELECT text
FROM mytable
GROUP BY text
HAVING COUNT(*) > 1 ) q
JOIN mytable m
ON m.text = q.text
这使我能够在 text
列上搜索重复项并且工作正常。但是,我有一张 table :
q1a, q2a, q3a, q4a, q5a
我想要的是查询检查所有列是否有重复项 - 如果可能的话,有人能给我指出吗?
谢谢
H.
最佳答案
这可能是您所需要的,它将为您提供重复的文本,以及在哪些行和列上找到匹配项;
SELECT GROUP_CONCAT(id) ids,q1a text,1 col
FROM myTable GROUP BY text HAVING COUNT(*)>1
UNION
SELECT GROUP_CONCAT(id),q2a text,2
FROM myTable GROUP BY text HAVING COUNT(*)>1
UNION
SELECT GROUP_CONCAT(id),q3a text,3
FROM myTable GROUP BY text HAVING COUNT(*)>1
UNION
SELECT GROUP_CONCAT(id),q4a text,4
FROM myTable GROUP BY text HAVING COUNT(*)>1
UNION
SELECT GROUP_CONCAT(id),q5a text,5
FROM myTable GROUP BY text HAVING COUNT(*)>1
关于MySQL 跨多列搜索重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17249100/