如何在MySQL上获取唯一的字段(反之亦然)
这个标题可能有误导性,但我不知道如何更好地表述它 假设我的MySQL表中有以下行: 表1:如何在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
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)子句中没有找到正确的语法。