簡體   English   中英

如何在mysql中將逗號分隔的參數轉換為行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM