SQL LIKE 中的多个值

use*_*992 3 sql amazon-redshift

名称 12ab_cd34 56ef_gh78 12ef_gh34

这是工作:

SELECT * FROM table WHERE name LIKE '%ab_cd%'
Run Code Online (Sandbox Code Playgroud)

如何包含'%ef_gh%'在单个/多个语句中?

我的尝试:

SELECT * FROM table WHERE name LIKE IN ('%ab_cd_%', '%ef_gh%')
Run Code Online (Sandbox Code Playgroud)

ale*_*avi 5

SIMILAR TO运算符将字符串表达式(例如列名)与 SQL 标准正则表达式模式进行匹配。SQL 正则表达式模式可以包含一组模式匹配元字符,其中包括LIKE运算符支持的两个元字符。

仅当其模式匹配整个字符串时,该SIMILAR TO运算符才返回 true,这与 POSIX 正则表达式行为不同,其中模式可以匹配字符串的任何部分。

SIMILAR TO执行区分大小写的匹配。

注意:
使用 SIMILAR TO 进行正则表达式匹配的计算成本很高。我们建议尽可能使用 LIKE,特别是在处理大量行时。例如,以下查询在功能上是相同的,但使用 LIKE 的查询运行速度比使用正则表达式的查询快几倍:

select count(*) from event where eventname SIMILAR TO '%(Ring|Die)%'; 
select count(*) from event where eventname LIKE '%Ring%' OR eventname LIKE '%Die%'; 
Run Code Online (Sandbox Code Playgroud)