Sql 如何在RLIKE蜂巢中避开单引号?双单引号无效

Sql 如何在RLIKE蜂巢中避开单引号?双单引号无效,sql,hive,special-characters,hiveql,rlike,Sql,Hive,Special Characters,Hiveql,Rlike,我想在RLIKE输入中转义单引号。我使用了双引号,如下所示: SELECT * FROM TABLE WHERE column RLIKE 'o''brien' 但它返回的结果是“obrien”,而不是“o'brien”。我尝试了“\\'”而不是双单引号,但这也不起作用。那么单引号的正确转义字符是什么呢?您可以使用=: WHERE column = 'o''brien' 我不确定您为什么要使用类似的RLIKE,除非您有意: WHERE column LIKE '%o''brien%' 三种

我想在RLIKE输入中转义单引号。我使用了双引号,如下所示:

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

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

您可以使用
=

WHERE column = 'o''brien'
我不确定您为什么要使用类似的
RLIKE
,除非您有意:

WHERE column LIKE '%o''brien%'
三种方法:

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

where column rlike "o'brien"
另见:

2使用unicode\u0027

where column rlike 'o\\u0027brien'
3使用十六进制\x27

where column rlike 'o\\x27brien'

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

我简化了我的命令,我想寻找多个模式,因此正则表达式是最好的选择(即“(o'brien)|(mcdonald)”)。顺便说一句,LIKE也表现出同样的行为。