模式匹配操作符
描述
模式匹配操作符用于比较字符类型的数据。
操作符介绍
操作符 | 作用 | 示例 |
---|---|---|
如果 | SELECT 'ABCD' LIKE '%C_' | |
如果 | SELECT 'ABCD' REGEXP 'A.*D' |
LIKE
LIKE 条件指定一个涉及模式匹配的测试。等值比较运算符(=)将一个字符值精确匹配到另一个字符值,而 LIKE 条件则通过在第一个值中搜索第二个值指定的模式,将一个字符值的一部分与另一个字符值进行匹配。
语法如下:
<char1> [ NOT ] LIKE <char2>
其中:
- char1 是一个字符表达式(如字符列),称为搜索值。
- char2 是一个字符表达式,通常是一个字面量,称为模式。
所有字符表达式(char1、char2)都可以是 CHAR、VARCHAR 或 STRING 数据类型中的任何一种。如果它们不同,则 Doris 会将它们全部转换为 VARCHAR 或者 STRING。
模式中可以包含特殊的模式匹配字符:
- 模式中的下划线 (_) 与值中的一个字符完全匹配。
- 模式中的百分号 (%) 可以与值中的零个或多个字符匹配。模式 '%' 不能与 NULL 匹配。
REGEXP(RLIKE)
REGEXP 与 LIKE 条件类似,不同之处在于 REGEXP 执行正则表达式匹配,而不是 LIKE 执行的简单模式匹配。此条件使用输入字符集定义的字符来评估字符串。
语法如下:
<char1> [ NOT ] { REGEXP | RLIKE } <char2>
其中:
- char1 是一个字符表达式(如字符列),称为搜索值。
- char2 是一个字符表达式,通常是一个字面量,称为模式。
所有字符表达式(char1、char2)都可以是 CHAR、VARCHAR 或 STRING 数据类型中的任何一种。如果它们不同,则 Doris 会将它们全部转换为 VARCHAR 或者 STRING。