MySQL 喜欢 IN 子句

MySQL like with IN clause

是否可以使用 IN 子句扩展 LIKE 表达式?

此刻我得到以下 SQL:

select * 
from SECURITY_PERMISSION permission
where permission.PERMISSION_ID like '%_10498_%'
and permission.PERMISSION_ID like '%_OBJ_VIEW%'

我想将一个数字列表传递给我的 like 表达式。类似的东西:

select * 
from SECURITY_PERMISSION permission
where permission.PERMISSION_ID like '%_IN(list_of_numbers)_%'
and permission.PERMISSION_ID like '%_OBJ_VIEW%'

那是糟糕的数据库设计。但是您可以使用 REGEXP 代替:

WHERE permission.PERMISSION_ID REGEXP '_(123|456|789)_'

还是数据库设计不好。

您也可以像这样使用 REGEX,因为一个字段包含多个以逗号分隔的值,例如:

WHERE column REGEXP '[[:<:]]1|2|3|4[[:>:]]'