gpt4 book ai didi

php - MySQL 选择 : Returning multiple columns based on a column value in the same table

转载 作者:行者123 更新时间:2023-11-29 14:52:27 25 4
gpt4 key购买 nike

我正在从包含文件元信息的单个表中读取行。其中一列 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 结果,就不可能做到这一点。

有高手能想到办法吗?

最佳答案

从文件中选择 *,其中 (acl = 0) 或 (acl = 1 且 ? = 'TRUE') 或 (acl = 2 且 ? = fileownerid)然后将 isAdmin 和 userid 绑定(bind)到变量 1 和 2。

关于php - MySQL 选择 : Returning multiple columns based on a column value in the same table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5458176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com