mysql正則查詢 模糊查詢
阿新 • • 發佈:2017-06-27
lec clas 找不到 not code cap col and regexp
-- ==============正則查詢================ /* SQL默認是忽略大小寫的 正則模式使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它們是同義詞)。正則即字段值包含正則的內容即可 . 匹配任何單個的字符,表示任意單字符 [...] 匹配包含方括號內某單個字符的字符串,[0-9]匹配0到9之間的某個數字 * 匹配零個或多個在它前面的字符 {n} 匹配n個在它前面的字符 如果希望大小寫都匹配上可以這樣寫。[aA] 匹配大小寫的 a,[a-zA-Z] 則匹配大小寫的任何 a-z 單個字母。 但默認是不區分大小寫的 [b] 也可匹配上還有 B 的字符串 要匹配的字符在字段起始處,使用 ^ ,在字段的結尾用 $ 如果是中文字符,可能在使用時需要註意一下。*/ -- 字段name只有四個值,name_aA ,name_aB , name_人人 ,name_%好好_ SELECT * FROM `test_t` WHERE NAME REGEXP ‘[a-z]‘; -- 包含a到z某個字符的字符串,能匹配到 name_aA 和 name_aB 和 name_人人 和 name_%好好_ SELECT * FROM `test_t` WHERE NAME REGEXP ‘^n.....b$‘; -- 以n開頭B結尾,7個字符長度的字符串,能匹配到 name_aB SELECT * FROM `test_t` WHERE NAME RLIKE ‘d*‘; -- 包含0個或多個d的字符串,能匹配到該字段的所有值,因為 * 前的字符0個也匹配 SELECT * FROM `test_t` WHERE NAME RLIKE ‘B{1}$‘; -- 結尾是一個B,能匹配到name_aB -- ==============模糊查詢================ -- MySql的like語句中的通配符:百分號、下劃線和escape -- % 表示任意個或多個任意字符。可匹配任意類型和長度的字符。 SELECT * FROM `test_t` WHERE NAME LIKE ‘%me_aB‘; -- 查詢結果 name_aB -- 如果需要找出 name 中既有 b 又有 a 的記錄,使用 and 條件 SELECT * FROM `test_t` WHERE NAME LIKE ‘%b%‘ AND NAME LIKE ‘%a%‘; -- 若使用 SELECT * FROM `test_t` WHERE NAME LIKE ‘%b%a%‘; 則找不到 name_aB -- _ 表示任意單個字符。匹配單個任意字符,它常用來限制表達式的字符長度語句(可以代表一個中文字符) SELECT * FROM `test_t` WHERE NAME LIKE ‘_______‘; -- 能查詢到 name_aA 和 name_aB 還有 name_人人 這7個字符長度的值 -- 如果要查字符 % 或者 _ 使用 ESCAPE,轉義字符後面的 % 或 _ 就不作為通配符了,註意前面沒有轉義字符的%和_仍然起通配符作用 SELECT * FROM `test_t` WHERE NAME LIKE ‘name_/%%好/_‘ ESCAPE ‘/‘; -- 查詢結果 name_%好好_
mysql正則查詢 模糊查詢