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