首先,看下我們數據庫學生表的數據,
如果要查詢所有姓王的學生,這個sql怎么寫?
我們可以用 like關鍵字,
select * from student where `name` like '王%'
這種匹配以‘王’字開頭,后面任意字符的數據
如果我們要查詢所有叫阿‘偉’的學生呢?
還是可以用 like關鍵字
select * from student where `name` like '%偉'
這種匹配以‘偉’字結尾,前面任意字符的數據
上面的模糊查詢都是用like關鍵字,加個百分號,這個百分號的意思就是匹配所有的字符,還有另一種寫法,就是二個百分號的,前后都有匹配符,
如 select * from student where `name` like '%強%'
這種不止是以‘強’字開頭的,或以‘強’字結尾的,是符合數據,‘強’字出現在任何位置都是符合的數據。
除了用百分號做匹配符,我們還可以用下橫線(_),這個和百分號有什么區別?
百分號可以匹配任意個字符,一個或多個,或0個,但一個下橫線就是匹配一個字符。
select * from student where `name` like '王_'
只能是姓王的,并且姓名是二個字的學生
如果要匹配多個字符時,我們可以加多個下橫線,二個下橫線就是匹配二個字符,以此類推。
比如要查詢姓王的學生,且姓名是三個字的,我們可以這樣寫,
select * from student where `name` like '王__'
除了用匹配符,我們還可以用mysql自帶的函數,INSTR,用法如下,
select * from student where INSTR(name, '王')>0,
就是name字段包括有‘王’字的數據。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!