首页 > 解决方案 > SQL 检查行是否包含一组值

问题描述

我有一个如下的数据库: 在此处输入图像描述

我现在想检查该表中的每一行是否包含一组数据。像这样:我想查询以下字母:A, B
这应该返回以下行:res1, res4
这是因为两者都res1包含res4A,并且B在其中一列中

此逻辑也适用于这种情况:
如果我只查询字母B,则查询必须返回以下行:res1, res2, res4

所以我想要发生的是,valsx, valsy, valsz, valsq如果这些列中的任一列包含查询值之一,则查询会检查这些列。如果所有查询的值都存在于行(四列)中,则返回该行。

我不知道如何用 SQL 做到这一点。我试过了 select * from table where valsx contains b or valsy contains b or valsz contains b or valsq contains b

如果有任何不清楚的地方,请告诉我,以便我澄清。

标签: phpmysqlsqlrowmultiple-columns

解决方案


您可以使用in

select t.*
from t
where 'A' in (valsx, valsy, valsz, valsq) and
      'B' in (valsx, valsy, valsz, valsq);

推荐阅读