【问题标题】:How to escape single quotes in RLIKE Hive? Double single quotes not working如何在 RLIKE Hive 中转义单引号?双单引号不起作用
【发布时间】:2021-05-23 16:37:04
【问题描述】:

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

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

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

【问题讨论】:

    标签: sql hive special-characters hiveql rlike


    【解决方案1】:

    三种方法:

    1 将整个正则表达式放入双引号中,单引号被屏蔽在双引号内:

    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 代码,您可以检查任何知道代码的特殊字符。

    【讨论】:

      【解决方案2】:

      你可以使用=:

      WHERE column = 'o''brien'
      

      我不确定你为什么要使用RLIKE,除非你有意:

      WHERE column LIKE '%o''brien%'
      

      【讨论】:

      • 我简化了我的命令,我想寻找多种模式,所以正则表达式是最好的选择(即 "(o''brien)||(mcdonald)" )。顺便说一句,LIKE 也表现出相同的行为。
      猜你喜欢
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多