第六章_查詢 【like、rlike 的區別】


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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM