逗号分隔的IN运算符,MySQL的参数

时间:2010-11-13 09:24:42

标签: mysql sql find-in-set

我有一个表格,其中以下查询正常工作:

select * 
from session_actions 
where action_type IN ('login_failed','channel_recorded')

现在我期待以下内容:

select * 
from session_actions 
where action_type IN ('login_failed,channel_recorded')

如您所见,我想给IN运算符一个逗号分隔的参数,但不可能

如何将此逗号分隔的字符串转换为IN运算符可接受的参数列表?

2 个答案:

答案 0 :(得分:2)

您可能正在寻找 FIND_IN_SET() 功能。

select * 
from session_actions 
where find_in_set(`action_type`,'login_failed,channel_recorded');

<强> SAMPLE FIDDLE

答案 1 :(得分:0)

我试过FIND_IN_SET,但速度太慢了。从那时起我宁愿使用haystack REGEXP CONCAT('[[:<:]]', needle, '[[:>:]]')