【发布时间】:2011-03-28 19:20:52
【问题描述】:
我正在从包含文件元信息的单个表中读取行。其中一列 acl 包含一个标志(0,1 或 2)映射到(无限制、受限或私有)。我想创建一个 SELECT 查询,它将基于两个 PHP 变量 $userId 和 $isAdmin 返回文件数据。逻辑如下:
- 如果 acl = 0,无论 $userId 或 $isAdmin 值如何,都返回文件信息行
- 如果 acl = 1 且 $isAdmin 为 TRUE,则返回文件信息行
- 如果 acl = 2 IF $userId = fileownerid(其中 fileownerid 是表中存储上传文件的所有者 ID 的列),则返回文件信息行
所以基本上我正在对表进行查询,并且只返回允许用户查看的行
我尝试在子查询中使用各种 CASE 和 IF 语句,但无法解决。首先,如果不处理 PHP 中的 SQL 结果是不可能的。
任何大师有办法吗?
【问题讨论】: