Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Mysql中,在同一行的多个列中查找重复值accross_Php_Mysql_Sql - Fatal编程技术网

Php 在Mysql中,在同一行的多个列中查找重复值accross

Php 在Mysql中,在同一行的多个列中查找重复值accross,php,mysql,sql,Php,Mysql,Sql,请帮助在MySQL中的同一行的多个列中查找重复条目: 我对MySql的 但在PHP中,下面的示例将使用 示例 $query = "select * from table_name"; $result = mysqli_query($query); while ($row = mysqli_fetch_array($result)) { if ($row['sample1'] == $row['sample2']) { // This row duplicate

请帮助在MySQL中的同一行的多个列中查找重复条目:


我对MySql的

但在
PHP
中,下面的示例将使用

示例

$query = "select * from table_name";
$result = mysqli_query($query);
while ($row = mysqli_fetch_array($result)) {
    if ($row['sample1'] == $row['sample2']) {
        // This row duplicate
    }
    else {
        // This row not duplicate
    }
}

如果要查找列中有重复项的记录,可以使用以下查询:

SELECT T1.* FROM tbl T1
JOIN  
    (SELECT id
    FROM (
        SELECT id, sample1 AS n from tbl
        UNION ALL
        SELECT id, sample2 AS n from tbl
        UNION ALL
        SELECT id, sample3 AS n from tbl
    ) AS X
    GROUP BY id, n
    HAVING COUNT(*) > 1
) T2
    ON T1.id = T2.id;

您还可以测试它

糟糕的表设计。为什么有几个列具有相同类型的数据?请向我们展示您的代码以及您迄今为止所尝试的内容。您到底想实现什么?是的。修复您的模式设计它不一定是糟糕的表设计。我可以想出几个好的表格设计,在那里可以做到这一点,并且需要找出OP到底要求什么。只是现在的问题已经完成了,包括代码、他的尝试以及为什么他的解决方案不起作用的解释。如果sample1='Sam',sample2='Rob',sample3='Rob'?然后添加sample1、sample2和sample3,但是如果一行中有100列呢?那就太多了!所以在你的问题中先写下这个。
SELECT T1.* FROM tbl T1
JOIN  
    (SELECT id
    FROM (
        SELECT id, sample1 AS n from tbl
        UNION ALL
        SELECT id, sample2 AS n from tbl
        UNION ALL
        SELECT id, sample3 AS n from tbl
    ) AS X
    GROUP BY id, n
    HAVING COUNT(*) > 1
) T2
    ON T1.id = T2.id;