аргумент, разделенный запятыми для оператора IN, MySQL

#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 оператора?

Ответ №1:

Возможно, вы ищете функцию FIND_IN_SET ().

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

ОБРАЗЕЦ СКРИПКИ

Ответ №2:

Я пытался FIND_IN_SET , но это было очень медленно. Я скорее пользуюсь haystack REGEXP CONCAT('[[:<:]]', needle, '[[:>:]]') с тех пор.