[英]How to convert comma separated parameters to rows in mysql?
在我的函數中,我使用了IN
關鍵字, where
有一個參數值
例如:
CASE- 1
'1,8,9' or
CASE- 2
'9,8,7,4,5' or
CASE- 3
'9,8'
現在我先通過“ 1,8,9”,然后結果集僅以1為基礎,
與第二種情況'9,8,7,4,5'相同,則結果集僅基於9出現,
我認為帶有“ IN”關鍵字的“ where”條件僅考慮第一個ID
現在我的問題是對逗號分隔為行值該怎么辦?
將事物存儲在列表in
時, in
的替換是find_in_set()
:
where find_in_set(col, '1,2,3') > 0
請注意,這不能利用索引,因此不建議在較大的表上使用。 您應該將列表作為in
或子查詢放入SQL in
,以使用索引。
您需要為IN()
子句提供單獨的值,而不是單個包含列表的值。 這將工作:
where some_column in ('9','8','7','4','5' )
在MySQL中,您可以改用FIELD()
函數 :
where field(some_column, '9,8,7,4,5') > 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.