like
like 介绍
str like pattern[ ESCAPE escape] - 如果 str 匹配模式 pattern 并且有转义字符,则返回真;如果任何参数是 null,则返回 null;否则返回假。
参数:
-
str - 一个字符串表达式
-
pattern - 一个字符串表达式。该模式是一个字符串,通常按字面意义匹配,但以下特殊符号例外:
_ 匹配输入中的任意一个字符(类似于 posix 正则表达式中的 .)
% 匹配输入中的零个或多个字符(类似于 posix 正则表达式中的 .*)
从 Spark 2.0 开始,我们的 SQL 解析器不再对字符串文字进行转义。例如,为了匹配 "\abc",模式应该是 "\abc"。
当启用 SQL 配置 'spark.sql.parser.escapedStringLiterals' 时,它将回退到 Spark 1.6 关于字符串文字解析的行为。例如,如果启用了此配置,要匹配 "\abc",模式应该是 "\\abc"(因为在 SQL 中需要双转义)。
-
escape - Spark 3.0 之后添加的一个字符。默认的转义字符是 ''。如果转义字符在特殊符号或另一个转义字符之前,后续字符将被逐字匹配。转义任何其他字符都是无效的。
Examples:
> SELECT like('Spark', '_park');
true
> SET spark.sql.parser.escapedStringLiterals=true;
spark.sql.parser.escapedStringLiterals true
> SELECT '%SystemDrive%\Users\John' like '\%SystemDrive\%\\Users%';
true
> SET spark.sql.parser.escapedStringLiterals=false;
spark.sql.parser.escapedStringLiterals false
> SELECT '%SystemDrive%\\Users\\John' like '\%SystemDrive\%\\\\Users%';
true
> SELECT '%SystemDrive%/Users/John' like '/%SystemDrive/%//Users%' ESCAPE '/';
true
提示:
使用 RLIKE 来匹配标准的正则表达式。
Since: 1.0.0