面试过程中,有技术大牛提到了一个问题,让我不知所措:like与rlike有什么区别呀? 后面我百度查了一下,大概归纳如下,希望对大家有帮助: 1、定义 (1)like的内容不是正则,而是通
面试过程中,有技术大牛提到了一个问题,让我不知所措:like与rlike有什么区别呀?
后面我百度查了一下,大概归纳如下,希望对大家有帮助:
1、定义
(1)like的内容不是正则,而是通配符。像mysql中的"like",但是建议使用高级函数"instr"效率更高。
(2)rlike的内容可以是正则,正则的写法与java一样。需要转义,例如'\m'需要使用'\\m'
2、举例
(1)like
hive> select "11111112222123333" like "%12%" ;
(2)rlike,用相应的正则表达式即可
11111112222123333" rlike ".*12.*"
b. hive>select "11111112222123333" rlike "^12"
c. hive> select "aabba" rlike "aa\\w"
d. hive> select "aaannnn" rlike "aa\\w+"
以上几种方式使用正则都可以实现。
【文章转自:香港多ip服务器 http://www.558idc.com/hkzq.html提供,感恩】