MySQL帶AND關(guān)鍵字的多條件查詢,MySQL中,使用AND關(guān)鍵字,可以連接兩個(gè)或者多個(gè)查詢條件,只有滿足所有條件的記錄,才會(huì)被返回。
SELECT * | {字段名1,字段名2,……}
FROM 表名
WHERE 條件表達(dá)式1 AND 條件表達(dá)式2 […… AND 條件表達(dá)式n];
查詢student表中,id字段值小于16,并且,gender字段值為nv的學(xué)生姓名
可以看出,查詢條件必須都滿足,才會(huì)返回
查詢student表中,id字段值在12、13、14、15之中,name字段值以字符串“ng”結(jié)束,并且,grade字段值小于80的記錄
可以看出,返回的記錄,同時(shí)滿足了AND關(guān)鍵字連接的三個(gè)條件表達(dá)式。
PS:下面看下mysql多關(guān)鍵字多字段模糊查詢
假設(shè)有這樣兩條數(shù)據(jù):
(表名為user)
1) username=admin,password=000000
2) username=admin,password=123456
我們要實(shí)現(xiàn)的效果是可以輸入多個(gè)關(guān)鍵字查詢,多個(gè)關(guān)鍵字間以逗號(hào)分隔。
使用上述表舉例:輸入單個(gè)關(guān)鍵字“admin”可查出這兩條數(shù)據(jù),輸入“admin,000000”只查出第一條數(shù)據(jù),可實(shí)現(xiàn)的sql語(yǔ)句是:
select * from user where concat(username, password) like '%admin%';
select * from user where concat(username, password) like '%admin%' and concat(username, password) like '%000000%';
concat的作用是連接字符串,但這樣有一個(gè)問(wèn)題:如果你輸入單個(gè)關(guān)鍵字“admin000000”也會(huì)查到第一條數(shù)據(jù),這顯然不是我們想要的結(jié)果,解決方法是:由于使用逗號(hào)分隔多個(gè)關(guān)鍵字,說(shuō)明逗號(hào)永遠(yuǎn)不會(huì)成為關(guān)鍵字的一部分,所以我們?cè)谶B接字符串時(shí)把每個(gè)字段以逗號(hào)分隔即可解決此問(wèn)題,下面這個(gè)sql語(yǔ)句不會(huì)查詢到第一條數(shù)據(jù):
select * from user where concat(username, ',', password) like '%admin000000%';
如果分隔符是空格或其他符號(hào),修改 ',' 為 '分隔符' 即可。
總結(jié):
select * from 表名 where concat(字段1, '分隔符', 字段2, '分隔符', ...字段n) like '%關(guān)鍵字1%' and concat(字段1, '分隔符', 字段2, '分隔符', ...字段n) like '%關(guān)鍵字2%' ......;
以上所述是小編給大家介紹的Mysql帶And關(guān)鍵字的多條件查詢語(yǔ)句,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- mysql條件查詢and or使用方法及優(yōu)先級(jí)實(shí)例分析
- MySql帶OR關(guān)鍵字的多條件查詢語(yǔ)句
- MySQL中使用case when 語(yǔ)句實(shí)現(xiàn)多條件查詢的方法
- MySQL數(shù)據(jù)庫(kù)必備之條件查詢語(yǔ)句