2010-11-13 4 views
3

J'ai une table dans laquelle la requête suivante fonctionne bien:par des virgules arguments séparés pour l'opérateur IN, MySQL

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

Maintenant, je suis impatient de quelque chose comme ce qui suit:

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

Comme vous le voyez, je veux donner à l'opérateur IN un seul paramètre séparé par des virgules, mais ce n'est pas possible.

Comment puis-je convertir cette chaîne séparée par des virgules en une liste de paramètres s qui est acceptable à l'opérateur IN?

Répondre

2

Vous recherchez peut-être la fonction FIND_IN_SET().

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

SAMPLE FIDDLE

0

J'ai essayé FIND_IN_SET mais il était super lent. Je préfère utiliser haystack REGEXP CONCAT('[[:<:]]', needle, '[[:>:]]') depuis lors.

Questions connexes