Sql 如何在RLIKE蜂巢中避开单引号?双单引号无效
我想在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%' 三种
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也表现出同样的行为。