php - SQL 检查行是否包含一组值
问题描述
我现在想检查该表中的每一行是否包含一组数据。像这样:我想查询以下字母:A, B
这应该返回以下行:res1, res4
这是因为两者都res1
包含res4
值A
,并且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
如果有任何不清楚的地方,请告诉我,以便我澄清。
解决方案
您可以使用in
:
select t.*
from t
where 'A' in (valsx, valsy, valsz, valsq) and
'B' in (valsx, valsy, valsz, valsq);
推荐阅读
- python - Dask 数据框的引导示例
- tensorflow - 随机 3d 图像切片张量流数据,NoneType 形状的深度
- c - 从 APC 调用 LdrLoadDll 会导致访问冲突
- c++ - 如何将文件中的 UTF-8 文本转换为可以迭代的容器,并检查每个符号在 C++ 中是否为字母数字?
- sql-server - 选择取决于日期 VB.NET 和 SQL Server
- javascript - 在 PHP 和 Javascript 之间传递数组数据是未定义的
- python - 异常必须从 BaseException 派生
- reactjs - React Native 数学运算无法正常工作
- apache-spark-sql - 在 UNION 查询中执行 DISTRIBUTE BY 时是否需要子查询?
- java - Maven 项目无法从 Azure Artifacts 下载工件