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[[:>:]]'
Другие вопросы по тегам