使用 SQL IN 和 LIKE 匹配模式列表

Match a list of patterns using SQL IN and LIKE

是否可以匹配 SQL 中的模式列表?

我知道以下匹配单个模式的方法:

SELECT * FROM table where title LIKE '%match%'

这可以像这样扩展;

SELECT * FROM table 
where title LIKE '%match%' OR title LIKE '%match2%'

...等等

我有一长串模式,是否可以以任何方式使用 'IN' 以使代码更具可读性?

像这样的东西

SELECT * FROM table where title LIKE IN (match, match2, match3)

还是我被迫写了很多“OR”?

编辑:正在使用 SQL-Alchemy(Python 库)连接到 Microsoft SQL 服务器。

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

SELECT *
 FROM employees
 WHERE last_name LIKE 'match_' 

其中 _ 可以是任何其他字母 但你也可以更具体地描述更复杂的模式

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

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

如果您的数据库是 postgres,您可以使用类似的东西:

WHERE title ~~ ANY('{%foo%,%bar%,%baz%}');

来自this SO post。我还没有找到任何可与 Azure SQL.

相媲美的东西