如何在 RLIKE Hive 中转义单引号?双单引号不起作用

问题描述

我想转义 RLIKE 输入中的单引号。我像这样使用了双单引号:

SELECT * FROM TABLE
WHERE column RLIKE 'o''brien'

但它返回的结果是 "obrien" 而不是 "o'brien"。我也试过 "\\'" 而不是双单引号,但这也不起作用。那么单引号的正确转义字符是什么?

解决方法

三种方法:

1 将整个regexp放入双引号中,双引号内屏蔽单引号:

where column rlike "o'brien"

另见:https://stackoverflow.com/a/66175603/2700344

2 使用 unicode \u0027

where column rlike 'o\\u0027brien'

3 使用十六进制 \x27

where column rlike 'o\\x27brien'

使用 \\x\\u 代码,您可以检查任何知道代码的特殊字符。

,

您可以只使用 =

WHERE column = 'o''brien'

除非您有意,否则我不确定您为什么要使用 RLIKE

WHERE column LIKE '%o''brien%'