'Match a list of patterns using SQL IN and LIKE
Is it possible to match a list of patterns in SQL?
I know of the following way to match a single pattern:
SELECT * FROM table where title LIKE '%match%'
This can be exbanded like;
SELECT * FROM table
where title LIKE '%match%' OR title LIKE '%match2%'
... etc
I have a long list of patterns, is it possible to use 'IN' in any way, to make the code more readable?
Something more as this
SELECT * FROM table where title LIKE IN (match, match2, match3)
or am i forced to write lots of "OR"'s?
Edit: Was using SQL-Alchemy (Python library) to connect to Microsoft SQL Server.
Solution 1:[1]
If your database is postgres you can use something like:
WHERE title ~~ ANY('{%foo%,%bar%,%baz%}');
That comes from this SO post. I haven't found anything comparable for Azure SQL.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | MikeB2019x |
