在 IN 子句中查询具有多列的表
在 SQL 中,使用 IN 子句允许您基于集合过滤数据特定列的值。但是,使用具有多个列的 IN 子句可能具有挑战性。
为了克服此限制,人们提出了各种解决方案,包括使用联接或 EXISTS 子句。然而,这些方法要求主表和搜索数据都驻留在数据库中。
替代解决方案
对于主表和搜索数据都驻留在数据库中的情况数据库中不可用,可以采用替代解决方案:
SELECT city FROM user WHERE (firstName='x' AND lastName='y') OR (firstName='a' AND lastName='b') OR ...
首选解决方案
首选解决方案取决于具体用例:
具有多列的 IN 子句
但是,出现了一种更新的解决方案,它简化了使用 IN 子句查询多列的过程:
SELECT city FROM user WHERE (firstName, lastName) IN (('a', 'b'), ('c', 'd'));
这种方式允许你在IN子句的括号内指定多列,更加方便并根据值的组合有效地过滤数据。
以上是如何在 IN 子句中使用多列高效查询表?的详细内容。更多信息请关注PHP中文网其他相关文章!