PostgreSQL Like
PostgreSQL 没有 LIKE IN 运算符的直接组合,但你可以通过在 SQL 语句中使用 LIKE 和 IN 运算符的组合来实现类似功能,或者使用 PostgreSQL 提供的正则表达式功能来实现更灵活的模糊匹配。
如果你想在一个列表中查找包含特定模式的字符串,你可以先构建一个包含 LIKE 表达式的列表,然后将这个列表传递给 IN 子句。
SELECT *
FROM TABLE_NAME
WHERE column_name LIKE ANY (ARRAY['%pattern1%', '%pattern2%', '%pattern3%']);
LIKE ANY会检查column_name是否匹配 ARRAY 中的任何一个 LIKE 模式%pattern%是一个通配符,表示可以匹配任何字符序列
PostgreSQL 支持强大的正则表达式,可以通过其正则表达式运算符实现更灵活的模式匹配。
~运算符:匹配大小写敏感的正则表达式~*运算符:匹配大小写不敏感的正则表达式
SELECT *
FROM TABLE_NAME
WHERE column_name ~* 'pattern1|pattern2|pattern3';
|是正则表达式中的“或”操作符,在这里表示匹配 pattern1 或 pattern2 或 pattern3。- 这个正则表达式也可以用来查找包含这些模式的字符串
虽然 PostgreSQL 没有内置 LIKE IN 这种语法糖,但你可以通过 LIKE ANY 子句来组合模糊匹配和列表查找,或者利用其强大的正则表达式功能来实现类似的功能,以满足不同的模糊匹配需求。