[英]MySQL SELECT: Returning multiple columns based on a column value in the same table
我正在从包含文件元信息的单个表中读取行。 其中一列acl包含一个标志(0,1或2),映射到(不受限制,受限制或私有)。 我想创建一个SELECT查询,该查询将基于两个PHP变量$ userId和$ isAdmin返回文件数据。 逻辑如下:
所以基本上我在表上查询,只返回允许用户查看的行
我尝试在子查询中使用各种CASE和IF语句,但无法解决。 一开始,不处理PHP中的SQL结果是不可能的。
任何大师都知道一种方法吗?
select * from file where (acl = 0) or (acl = 1 and ? = 'TRUE') or (acl = 2 and ? = fileownerid)
然后将isAdmin和userid绑定到变量1和2。
我认为这样的工作应该可以完成:
$qry = 'SELECT * FROM yourtable
WHERE (acl = 0)
OR (acl = 1 AND '.$isAdmin.')
OR (acl = 2 AND '.$userId.' = fileownerid)';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.