MySQL 中 關於 find_in_set 用法


在項目中用的是 EF、MySQL,在查詢中用到某一個字段的值在某幾個中。一開始想到的是 in。

但是,這個字段是 int 類型的,傳入的參數需要用“,”分隔。這樣傳入的就是字符型的。

這樣的結果是:本來是 in (1,2,3),這樣傳參變成 in (‘1,2,3’)和預期的不一樣。

為了防止SQL語句的注入,沒有使用拼接語句。找了半天發現 find_in_set 這個函數可以達到效果。

來舉結果例子:

select * from table_name t where find_in_set(t.field1,'1,2,3,4'); 

select * from `test` t where find_in_set('daodao',t.field1);

這兩個都可以。第一個參數是要查詢的目標,第二個參數是查詢的源。

有一點,find_in_set 相對於 in 效率上面要差。


免責聲明!

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



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