#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, '[[:>:]]')
с тех пор.