首页 > 解决方案 > 使用 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。

标签: sqlsql-likesql-in

解决方案


当然!在 Microsoft SQL Server 中有一种方法可以做到这一点。

SELECT *
 FROM employees
 WHERE last_name LIKE 'match_' 

其中 _ 可以是任何其他字母,但您也可以更具体地处理更复杂的模式

 SELECT * FROM titles WHERE title LIKE '[a-t]itanic'

在这里,您将获得所有这些组合 aitanic 等。但我认为最简单的方法就是匹配您所说的所有内容 %text% 并应用 OR


推荐阅读