2010-11-13 60 views
3

我在下面的查询工作正常的表:逗号分隔的论据IN操作符,MySQL的

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

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

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

SAMPLE FIDDLE

0

我试图FIND_IN_SET但它是超慢。从那以后我宁愿使用haystack REGEXP CONCAT('[[:<:]]', needle, '[[:>:]]')