like与rlike的区别:
like不是正则,是通配符。这个通配符可以看一下SQL的标准,例如%代表任意多个字符。
rlike是正则,正则的写法与java一样。'\'需要使用'\\',例如'\w'需要使用'\\w'
--NAME中包含数字的
select name from wlh_dm_sz_3 where rlike (name,'[0-9]') limit 100
select name from wlh_dm_sz_3 where name rlike '[0-9]' limit 100 结果相同
--NAME中以数字开头的
select name from wlh_dm_sz_3 where name rlike '^[0-9].*' limit 100
--NAME中包含A B C的
select name from wlh_dm_sz_3 where rlike (name,'1|2|3') limit 100
hive 中没有not like 而是用 not col_name like '%a%'
not col_name rlike 'a'
--多个条件
如查找name字段中含有 Li 和 Jin的信息
select * from emp where name rlike '.*(Li|Jin).*';
点号.:表示和任意的字符匹配
星号*:表示重复“左边的字符串”零次到无数次
表达式(x|y):表示和x或者y匹配