Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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
如何在MySQL上获取唯一的字段(反之亦然)_Mysql - Fatal编程技术网

如何在MySQL上获取唯一的字段(反之亦然)

如何在MySQL上获取唯一的字段(反之亦然),mysql,Mysql,这个标题可能有误导性,但我不知道如何更好地表述它 假设我的MySQL表中有以下行: 表1: id column1 column2 1 1 2 2 1 3 3 2 1 4 3 4 我编写了一个查询来检索列1和列2(id:1和id:3)上具有类似值的数据,但查询没有类似值的数据(id:2和id:4)或具有某种唯一性的数据时遇到问题 编辑:我用来获取versa行的查询 SELECT

这个标题可能有误导性,但我不知道如何更好地表述它

假设我的MySQL表中有以下行:

表1:

id    column1    column2
1     1          2
2     1          3  
3     2          1
4     3          4
我编写了一个查询来检索列1和列2(id:1和id:3)上具有类似值的数据,但查询没有类似值的数据(id:2和id:4)或具有某种唯一性的数据时遇到问题

编辑:我用来获取versa行的查询

SELECT * FROM table1 t1
INNER JOIN table1 t2
ON (t1.column1 = t2.column2 AND t1.column2 = t2.column1);

您可以在此处使用exists逻辑:

SELECT id, column1, column2
FROM yourTable t1
WHERE NOT EXISTS (SELECT 1 FROM yourTable t2
                  WHERE LEAST(t2.column1, t2.column2) = LEAST(t1.column1, t1.column2) AND
                        GREATEST(t2.column1, t2.column2) = GREATEST(t1.column1, t1.column2));

一个简单的解决方案是使用
WHERE
子句中的查询筛选出类似的行:

SELECT * 
FROM table1 t1
WHERE (column1, column2) NOT IN
   (SELECT t1.column1, t1.column2 
    FROM table1 t1
    INNER JOIN table1 t2
       ON t1.column1 = t2.column2 AND t1.column2 = t2.column1)

您能否与我们分享您编写的关于获取类似值的查询?如果这是正确的,那么您可以使用相同的查询来获得行的结果。@Giorgosbetoshi,我已经编辑了原始问题并添加了查询Hi Tim,谢谢您的回复。如果数据是字符串而不是整数,如何使用此查询?。。。它也应该用于字符串,但请记住,应用于文本的
最小值
最大值
将使用字典排序,而不是数字排序。也就是说,
'2'
大于
'12'
谢谢,我已经尝试过类似的方法,但是在WHERE(column1,column2)子句中没有找到正确的语法。