亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求助大神,關于sql對同一字段進行模糊查詢時,請問該如何將兩個條件寫入一個like中

求助大神,關于sql對同一字段進行模糊查詢時,請問該如何將兩個條件寫入一個like中

長風秋雁 2021-06-02 11:07:20
我數據庫中一個字段中存儲的是“avc,def”,我在頁面中輸入v,e或者a,f之類的,如何將“avc,def”查詢出來sql能 where 字段名 like ‘%v%,%e%’這樣的結構?我試了一下不行,那要怎么樣查呢?請各位幫幫忙實在沒有財富值了謝謝各位了
查看完整描述

2 回答

?
DIEA

TA貢獻1820條經驗 獲得超2個贊

表名為user)

1) username=admin,password=000000

2) username=admin,password=123456

我們要實現的效果是可以輸入多個關鍵字查詢,多個關鍵字間以逗號分隔。

使用上述表舉例:輸入單個關鍵字“admin”可查出這兩條數據,輸入“admin,000000”只查出第一條數據,可實現的sql語句是:

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的作用是連接字符串,但這樣有一個問題:如果你輸入單個關鍵字“admin000000”也會查到第一條數據,這顯然不是我們想要的結果,解決方法是:由于使用逗號分隔多個關鍵字,說明逗號永遠不會成為關鍵字的一部分,所以我們在連接字符串時把每個字段以逗號分隔即可解決此問題,下面這個sql語句不會查詢到第一條數據:

select * from user where concat(username, ',', password) like '%admin000000%';

如果分隔符是空格或其他符號,修改 ',' 為 '分隔符' 即可。

總結:

select * from 表名 where concat(字段1, '分隔符', 字段2, '分隔符', ...字段n) like '%關鍵字1%' and concat(字段1, '分隔符', 字段2, '分隔符', ...字段n) like '%關鍵字2%' ......;

查看完整回答
反對 回復 2021-06-07
?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

你寫的理論上是可以的
但是你存儲的是中文寫法的逗號
但你like的是英文寫法的逗號,有可能是這個問題造成的吧
你檢查下你的輸入法
還有like的單引號貌似也不對吧

查看完整回答
反對 回復 2021-06-07
  • 2 回答
  • 0 關注
  • 609 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號