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[[:>:]]'
是否可以使用 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[[:>:]]'