是否可以使用IN子句扩展LIKE表达式?
此刻我得到以下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%'
答案 0 :(得分:1)
那是错误的数据库设计。但是您可以改用REGEXP
:
WHERE permission.PERMISSION_ID REGEXP '_(123|456|789)_'
数据库设计仍然很糟糕。
答案 1 :(得分:1)
您也可以像这样使用REGEXP,因为一个字段包含多个用逗号分隔的值,例如:
WHERE column REGEXP '[[:<:]]1|2|3|4[[:>:]]'