mysql 中模糊查詢有兩種,一種LIKE, NOT LIKE 。另一種就是匹配 REGECXP, NOT REGEXP。
LIKE NOT LIKE
1、%
表示任意幾個字符,比如:
select * from T_Bank where BankName like '%農%'
將查詢出BankName中任何帶有 ‘農’的數據。
2、_
任意單個字符,比如:
select * from T_Bank where BankName like '農'
只會查詢出BankName 有三個字中間一個是‘農’的數據。
3、[]
表示匹配[ ] 內的任意一個字符比如:
select * from T_Bank where BankName like '[張李王]三'
只會查詢出張三、李三、王三 的數據。
[0-9],[a-e] 表示[0123456789] [abcde]等。
4、[^]
表示取反,查詢出不是某些匹配的數據比如:
select * from T_Bank where BankName like '[^張李王]三'
表示查詢出排除張三、李三、王三 的數據。
REGECXP, NOT REGEXP
1、^
表示以某個字符開頭的比如:
select * from T_Bank where BankName REGEXP '^中國'
查詢出以中國開頭的數據
2、$
表示查詢出以某個字符結尾的比如:
select * from T_Bank where BankName REGEXP '移動$'
查詢出以移動結尾的數據。
3、.
表示任意字符
select * from T_Bank where BankName REGEXP '.移.'
查詢出以任意帶有‘移’的數據。
4、*
匹配0 或者多個字符,前面必須有字符
select * from T_Bank where BankName REGEXP '中國'
查詢出中國開頭的所有字符
5、
select * from T_Bank where BankName REGEXP '中國'
查詢出任意含有中國的數據
6、a
匹配任意多個a(包括空串)
7、a+
匹配任意多個a(不包括空串)
8、a?
匹配一個或零個a
9、a|b
匹配a或者b