MySQL和IN子句一样

时间:2019-01-31 07:42:16

标签: mysql sql-like sql-in

是否可以使用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%'

2 个答案:

答案 0 :(得分:1)

那是错误的数据库设计。但是您可以改用REGEXP

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

数据库设计仍然很糟糕。

答案 1 :(得分:1)

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

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