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

前端之家收集整理的这篇文章主要介绍了mysql – 检查多个记录是否与一组值匹配前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

  1. select * from tableName where (value1,value2) = ('someValue1','someValue2')
  2. select * from tableName where (value1,value2) = ('someOtherValue1','someOtherValue2')

……等等,最多可以查询任意数量查询.如果所有值都匹配,那么如何将这种事情重写为单个查询,其中查询仅返回?

最佳答案
你可以尝试类似的东西:

  1. select t.*
  2. from tableName t
  3. join (select 'someValue1' value1,'someValue2' value2 union all
  4. select 'someOtherValue1','someOtherValue2') v
  5. on t.value1 = v.value1 and t.value2 = v.value2
  6. where 2=
  7. (select count(distinct concat(v1.value1,v1.value2))
  8. from (select 'someValue1' value1,'someValue2' value2 union all
  9. select 'someOtherValue1','someOtherValue2') v1
  10. join tableName t1
  11. on t1.value1 = v1.value1 and t1.value2 = v1.value2)

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

猜你在找的MySQL相关文章