在 MySQL 中查找任意两列不唯一的行?
与查找重复行相反的排序。我有一个包含一堆列的表,我想找到两列中数据不相同的地方。所以...
如果我有这个:
------------
col1 | col2
------------
A | 1
------------
A | 1
------------
A | 2
------------
B | 1
------------
B | 1
------------
B | 3
------------
B | 1
------------
我想找到这个:
------------
col1 | col2
------------
A | 1
------------
A | 2
------------
B | 1
------------
B | 3
------------
但是如果我有这个:
------------
col1 | col2
------------
A | 1
------------
A | 1
------------
B | 1
------------
B | 1
------------
B | 1
------------
我想找到这个:
Empty set
Sort of the reverse of finding duplicate rows. I have a table with a bunch of columns, and I want to find where data isn't the same in two columns. So...
If I have this:
------------
col1 | col2
------------
A | 1
------------
A | 1
------------
A | 2
------------
B | 1
------------
B | 1
------------
B | 3
------------
B | 1
------------
I want to find this:
------------
col1 | col2
------------
A | 1
------------
A | 2
------------
B | 1
------------
B | 3
------------
But if I have this:
------------
col1 | col2
------------
A | 1
------------
A | 1
------------
B | 1
------------
B | 1
------------
B | 1
------------
I want to find this:
Empty set
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果我们可以假设您也有一个唯一的 id 列,您可以执行类似的操作
If we can assume you have a unique id column also, you can do something like
如果用户想要选择大于 1 的值,则此方法有效。但是,如果用户想要选择一个空值(如果 Col2 具有大于 1 的相同值),则此查询将不起作用。
this works if the user wants to select a value of greater than 1. but if the user want to have an empty if Col2 has the same value greater than 1, this query won't work.
您可以使用:
此解决方案将按照问题所有者最后一条评论中的要求返回重复的记录。
You can use:
This solution will return duplicated records, as requested in the last comment from the question owner.