1. like 和 rlike 的區別
1. like
1. sql語法的 模糊匹配
2. 通配符
1. % 代表零個或任意字符
2. _ 代表1個字符
2. rlike
1. hive 擴展功能, 通過 Java 正則表達式 來匹配條件
3. 案例
-- like _單個字符 %任意字符+任意數量 true = 1 false = 0 [基於sql實現的接口] -- rlike 基於java正則實現的接口 --語法:A,B 匹配返回true,否則返回false,當A,B為null時,返回null --區別:like 通配符匹配的是整個列,比如helloworld就無法和’world’通配 --但是正則表達式則是在列值內進行匹配,helloworld就可以和’world’匹配返回TRUE --操作類型: strings --返回類型: boolean或null select 'football' like 'footba%' = 1 ,null rlike '[a-z]*' ,'football' rlike null ,'helloworld' like 'world' ,'helloworld' rlike 'world' ,'helloworld' regexp 'world' -- rlike 和 regexp 用法相同 --操作類型: strings --返回類型: boolean或null select 'helloworld' rlike 'world' ,rlike('helloworld','world') = 1 --語法: regexp_replace(string A, string B, string C) --操作類型: string --返回值: string --說明: 將字符串A中的符合java正則表達式B的部分替換為C。 select regexp_replace('h234ney','\\d+','@') ,regexp_replace('h234ney','\\d','@') --語法: regexp_extract(string A, string pattern, int index) --返回值: string --說明:將字符串A按照pattern正則表達式的規則拆分,返回index指定的字符,index從1開始計。 select regexp_extract('honeymoon', 'ym', 0);