sql - 检查列是否包含多个值之一
问题描述
我有一个字符串数组和一个可能包含一个或多个这些字符串的列(由空格分隔)我想获取该列包含其中一个字符串的所有行。由于这些值都有 3 个字母,因此不能相互包含,我知道我可以写
SELECT * FROM table WHERE
column LIKE '%val1%' OR
column LIKE '%val2%' OR
column LIKE '%val3%' OR
column LIKE '%val4%'
但是我想知道是否没有更简单的语句,例如column IN ('val1', 'val2', 'val3', 'val4')
(这似乎仅在条目等于其中一个值时才有效,但如果仅包含它们则无效)
解决方案
尝试阅读此SQL 中是否有“LIKE”和“IN”的组合?并结合 SQL Server 的“LIKE”和“IN”,这将解决你的问题。
第一个链接中的类似内容。
SQL 服务器:
WHERE CONTAINS(t.something, '"bla*" OR "foo*" OR "batz*"')
推荐阅读
- azure - 使用 PowerBI Embed 时的问题,在 Incoporação 中可能是什么
- mysql - Spring 4 安全、MySQL、c3p0 连接。登录在 Spring 5 中有效,但在 Spring 4 中无效
- alfresco - 批量导出 Alfresco 内容
- postgresql - 在 Postgres 中对子元素进行动态排序的查询
- c# - 如果我从列表中删除元素 - 这是否意味着我的 RAM 也通过垃圾收集器或以某种方式被清除/释放?
- reactjs - 反应路由器页面不会停止重新加载
- python-3.x - 如何为熊猫列中的每个列表附加不同的元素?
- virtual-machine - 如何连接到外部部署的 Hyperledger Fabric 网络?
- mysql - 计数查询的 MySQL 查询优化
- python - 张量板连接问题