sql - 使用 SQL IN 和 LIKE 匹配模式列表
问题描述
是否可以匹配 SQL 中的模式列表?
我知道以下匹配单个模式的方法:
SELECT * FROM table where title LIKE '%match%'
这可以像这样扩展;
SELECT * FROM table
where title LIKE '%match%' OR title LIKE '%match2%'
... ETC
我有一长串模式,是否可以以任何方式使用“IN”以使代码更具可读性?
像这样的东西
SELECT * FROM table where title LIKE IN (match, match2, match3)
还是我被迫写很多“或”?
编辑:正在使用 SQL-Alchemy(Python 库)连接到 Microsoft SQL Server。
解决方案
当然!在 Microsoft SQL Server 中有一种方法可以做到这一点。
SELECT *
FROM employees
WHERE last_name LIKE 'match_'
其中 _ 可以是任何其他字母,但您也可以更具体地处理更复杂的模式
SELECT * FROM titles WHERE title LIKE '[a-t]itanic'
在这里,您将获得所有这些组合 aitanic 等。但我认为最简单的方法就是匹配您所说的所有内容 %text% 并应用 OR
推荐阅读
- c++ - C++/ASM:按值传递使用 xmm0,但通过引用使用 rdi
- c - 为什么我可以将负数作为 int 导入,而不是 long int 或其他更大的数据类型?
- android-studio - 我的 android studio 看不到我的虚拟和物理设备
- c# - 按钮弹出菜单项与下层按钮碰撞,并且在尝试选择菜单项时选择下层中的按钮
- java - 使用约束冲突。无法解析资源 -javax.xml.bind.annotation 和 jakarta.xml.bind-api
- sql - 如何将 DISTINCT 与文本数据类型一起使用?
- python-3.x - 如何确定每个人在每个时间在不同城市生活过的地方?
- regex - 使用正则表达式选择电话号码的变体
- python - 使用 linux HPC 处理大型 pandas 数据帧是个好主意吗?
- java - 获取用户所有可用的键盘(语言)