mysql正則查詢 模糊查詢

2022-07-08 20:36:13 字數 1873 閱讀 4810

--

**********====正則查詢***************=

/*sql預設是忽略大小寫的

正則模式使用regexp和not regexp操作符(或rlike和not rlike,它們是同義詞)。正則即字段值包含正則的內容即可

. 匹配任何單個的字元,表示任意單字元

[...] 匹配包含方括號內某單個字元的字串,[0-9]匹配0到9之間的某個數字

* 匹配零個或多個在它前面的字元

匹配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$'; --

結尾是乙個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模糊查詢 MYSQL模糊查詢

mysql提供標準的sql模式匹配,以及一種基於象unix實用程式如vi grep和sed的擴充套件正規表示式模式匹配的格式。一 sql模式 sql的模式匹配允許你使用 匹配任何單個字元,而 匹配任意數目字元 包括零個字元 在 mysql中,sql的模式預設是忽略大小寫的。下面顯示一些例子。注意在你...

mysql模糊查詢索引 MySQL模糊查詢全文索引

全文索引 mysql front dump 2.5 host localhost database test server version 4.0.12 nt log table structure for table t3 create table t3 name char 12 not null...

mysql 正反模糊查詢 mysql模糊查詢

mysql 使用內建函式進行模糊查詢 locate,position,instr,find in set 1 locate substr str,pos 方法 2 position substr in field 方法 3 instr str substr 方法 4 find in set str1...