在我的功能中,我使用 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
现在我的问题是我应该怎样做才能将逗号分隔成行值?
答案 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