MySQL 跨多列搜索重复项

标签 mysql duplicates

道歉:我的意思是重复项必须位于同一列中。

我有以下代码:

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

An SQLfiddle to test with .

关于MySQL 跨多列搜索重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17249100/

相关文章:

php - 在MySQL中复制数据库,如何复制 View ?

javascript - 如何根据列值突出显示工作表中的重复行?

javascript - PHP 表单代码有时会同时执行两次

java - 消除数组中重复对象的最佳方法

r - 数据框排列/重新排列和删除重复列

mysql - Ruby on Rails - bundler MySQL 错误 : Failed to build gem native extension

query_posts 后 MySQL 错误 "Query execution was interrupted"

mysql - 数据库中的列排序会影响性能吗?

c# - 无法连接到任何指定的 mysql 主机。 C# MySQL

使用 dplyr 在时间序列数据中用 NA 替换重复值