mysql in 查詢參數化


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM