mysql in 查詢參數化

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

方法

相關文章
相關標籤/搜索