mysql查詢語句where條件in
mysql查詢語句where條件in
正常情況需要查詢的語句:
select *from temp where id in ('1','2','3','4','5')
在實際過程中發現一直查不出數據,實際上能夠查出數據,弄得一直很郁悶,找不出原因。
通過各終嘗試,最后在項目中通過斷點找出原因。
在進行查詢時in中自動添加了單引號,如:
select *from temp where id in ('1,2,3,4,5')
這個sql肯定就不會查出數據。
剛開始想到的解決方法是,通過
id=id.replace(",", "','");
進行替換,達到想要的查詢語句。問題還是沒有就解決。通過斷點發現sql變為:
select *from temp where id in ('1\','2\','3\','4\',\'5')
此方法行不通,最會找到下邊的解決方案解決問題。
解決方案:
此時 FIND_IN_SET 就能解決我們這個棘手的問題了。
select *from temp where FIND_IN_SET(id,'1,2,3,4,5') // 用 FIND_IN_SET 代替 IN , FIND_IN_SET(列名 ,傳入的參數);
有這么一個簡單的方法:String str=StringUtils.join(list,",");
// 集合轉String
---------------------
原文:https://blog.csdn.net/weixin_40725027/article/details/83011268