日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql模糊查询 or_mysql的模糊查询

發布時間:2025/3/12 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql模糊查询 or_mysql的模糊查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mysql模糊查詢like/REGEXP

(1)like / not like

MySql的like語句中的通配符:百分號、下劃線和escape

%:表示任意個或多個字符。可匹配任意類型和長度的字符。

Sql代碼

select * from user where username like '%huxiao';

select * from user where username like 'huxiao%';

select * from user where username like '%huxiao%';

另外,如果需要找出u_name中既有“三”又有“貓”的記錄,請使用and條件

SELECT * FROM [user] WHERE u_name LIKE ‘%三%’ AND u_name LIKE ‘%貓%’

若使用 SELECT * FROM [user] WHERE u_name LIKE ‘%三%貓%’

雖然能搜索出“三腳貓”,但不能搜索出符合條件的“張貓三”。

_:表示任意單個字符。匹配單個任意字符,它常用來限制表達式的字符長度語句:(可以代表一個中文字符)

Sql代碼

select * from user where username like '_';

select * from user where username like 'huxia_';

select * from user where username like 'h_xiao';

如果我就真的要查%或者_,怎么辦呢?使用escape,轉義字符后面的%或_就不作為通配符了,注意前面沒有轉義字符的%和_仍然起通配符作用

Sql代碼

select username from gg_user where username like '%xiao/_%' escape '/';

select username from gg_user where username like '%xiao/%%' escape '/'; 意思就是說/之后的_不作為通配符

(2)正則表達式

規則如下:

^ 匹配字符串的開始部分

$ 匹配字符串的結束部分

. 匹配任何字符(包括回車和新行)

a* 匹配0或多個a字符的任何序列

a+ 匹配1個或多個a字符的任何序列

a? 匹配0個或1個a字符

de|abc 匹配序列de或abc

(abc)* 匹配序列adc的0個或者多個實例

{n}、{m,n} {n}或{m,n}符號提供了編寫正則表達式的更通用方式,能夠匹配模式的很多前述原子(或“部分”)。m和n均為整數。

a* 可被寫為a{0,}

a+ 可被寫為a{1,}

a? 可被寫為a{0,1}

[a-dX] 匹配任何是a,b,c,d或者X的字符,兩個其他字符之間的’-'字符構成一個范圍

[^a-dX] 匹配任何不是a,b,c,d或者X的字符,前面的字符’^'是否定的意思

舉例如下:

^,匹配字符串開始位置,還是上面的例子,查詢所有姓王的人名

select name from 表名 where name regexp '^王';

$,匹配字符串結束位置,如查詢所有姓名末尾是“明”的人名

select name from 表名 where name regexp '明$';

.,匹配除\n之外的任意單個字符,類似于_,就不寫sql語句了

[……],匹配[]中包含的任何一個字符,abcdef……xyz可以簡寫為[a-z],0123456789簡寫成[0-9],如查詢出w/z/s開頭的的人名

select name from 表名 where name regexp '^[wzs]';

[^……],匹配不包含在[]的字符,如查詢出除了w/z/s開頭之外的人名

select name from 表名 where name regexp '^[^wzs]';

a|b|c,匹配a或b或c,如將績效為A-或A或A+的員工查出來,假設績效列名performance

select performance from 表名 where performance regexp 'A-|A|A+';

*,重復0次或多次,熟悉javascript正則的同學都知道

'str*'可以匹配st/str/strr/strrr……

?,重復0次或1次

'str?'可以匹配st/str

總結

以上是生活随笔為你收集整理的mysql模糊查询 or_mysql的模糊查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。