有没有办法编写单个查询来检查一组行是否与一组值匹配?我需要匹配每组值一行,并且我想知道所有行是否匹配.我可以通过多个查询执行此操作,例如:
select * from tableName where (value1,value2) = ('someValue1','someValue2')
select * from tableName where (value1,value2) = ('someOtherValue1','someOtherValue2')
最佳答案
你可以尝试类似的东西:
select t.*
from tableName t
join (select 'someValue1' value1,'someValue2' value2 union all
select 'someOtherValue1','someOtherValue2') v
on t.value1 = v.value1 and t.value2 = v.value2
where 2=
(select count(distinct concat(v1.value1,v1.value2))
from (select 'someValue1' value1,'someValue2' value2 union all
select 'someOtherValue1','someOtherValue2') v1
join tableName t1
on t1.value1 = v1.value1 and t1.value2 = v1.value2)
如果您要检查大量值对,则可能更容易将它们插入临时表并使用上述查询中的临时表,而不是两个单独的硬编码虚拟表.
原文地址:https://www.jb51.cc/mysql/433064.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。