MySQL как с предложением IN
Можно ли расширить выражение LIKE предложением IN?
На данный момент я получил следующий SQL:
select *
from SECURITY_PERMISSION permission
where permission.PERMISSION_ID like '%_10498_%'
and permission.PERMISSION_ID like '%_OBJ_VIEW%'
Я хочу передать список чисел моему подобному выражению. Что-то вроде того:
select *
from SECURITY_PERMISSION permission
where permission.PERMISSION_ID like '%_IN(list_of_numbers)_%'
and permission.PERMISSION_ID like '%_OBJ_VIEW%'
2 ответа
Решение
Это плохой дизайн базы данных. Но вы можете использовать REGEXP
вместо:
WHERE permission.PERMISSION_ID REGEXP '_(123|456|789)_'
Это все еще плохой дизайн базы данных.
Вы также можете использовать REGEXP следующим образом: поле содержит несколько значений, разделенных запятой, например:
WHERE column REGEXP '[[:<:]]1|2|3|4[[:>:]]'