[英]Query using % with IN clause
我一直在这里寻找这个答案,但找不到任何答案,问题是这样的。
这是桌子
USER | PERMISSION
PEDRO | ALL
BARBARA | READ - WRITE
FULANO | WRITE
它是一个示例表,我要查询的是具有该权限的所有用户以及对该页面具有我要的权限的所有用户,例如使用IN进行READ或WRITE
我正在使用这个:
select * from senha where permission IN ('read', 'all')
它仅查询“ pedro”是因为它具有全部功能,而不能查询“ barbara”,因为它具有更多仅由READ插入的单词,也尝试过此操作,但未成功
select * from senha where permission IN ('%read%', 'all')
您无法使用IN
实现类似LIKE
行为。 使用OR
组合两个子句:
SELECT * FROM senha
WHERE (permission = 'ALL' OR permission LIKE '%READ%')
至于修改后的问题,查询将是:
SELECT * FROM senha
WHERE user = 'PEDRO' AND
senha = 'TEST' AND
(permission = 'ALL' OR permission LIKE '%READ%')
话虽如此,我宁愿将权限标准化,例如:
USER | PERMISSION
--------+-----------
PEDRO | ALL
BARBARA | READ
BARBARA | WRITE
FULANO | WRITE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.