如何将逗号分隔的参数转换为mysql中的行?

时间:2014-03-29 14:11:42

标签: mysql function csv

在我的功能中,我使用 IN 关键字 where 我有一个参数值

e.g:

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'关键字只考虑第一个ID

现在我的问题是我应该怎样做才能将逗号分隔成行值?

2 个答案:

答案 0 :(得分:3)

当事项存储在列表中时,in的替换为find_in_set()

where find_in_set(col, '1,2,3') > 0

请注意,这不能利用索引,因此不建议在较大的表上使用。您应该将列表放入SQL中,作为in或子查询,以使用索引。

答案 1 :(得分:0)

您需要提供IN()子句单独值,而不是包含列表的单一。这可行:

where some_column in ('9','8','7','4','5' )

在MySQL中,您可以改为使用FIELD() function

where field(some_column, '9,8,7,4,5') > 0