加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql – 检查多个记录是否与一组值匹配

发布时间:2020-12-11 23:47:54 所属栏目:MySql教程 来源:网络整理
导读:有没有办法编写单个查询来检查一组行是否与一组值匹配?我需要匹配每组值一行,并且我想知道所有行是否匹配.我可以通过多个查询执行此操作,例如: select * from tableName where (value1,value2) = ('someValue1','someValue2')select * from tableName wher

有没有办法编写单个查询来检查一组行是否与一组值匹配?我需要匹配每组值一行,并且我想知道所有行是否匹配.我可以通过多个查询执行此操作,例如:

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)

如果您要检查大量值对,则可能更容易将它们插入临时表并使用上述查询中的临时表,而不是两个单独的硬编码虚拟表.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读