繁体   English   中英

使用%和IN子句查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM