php - 显示具有某些特殊条件行的所有行

标签 php mysql

我有两个表:

项目

item_id      is_private    created_by    stock_id
   1              0            1             4
   2              1            2             5
   3              0            3             8

股票

stock_id      created_by
    4              1
    5              2
    6              3

哪里created_by两个表中的列均指 users表的ID .

我正在尝试获取用户获取的项目行。如果用户创建了is_private行,那么该行应该添加到结果中。

我希望结果能够根据访问信息的用户而灵活。

例如:

如果 user_id: 3正在访问上述信息:

item_id       created_by    stock_id
   1             1             4
   3             3             8

如果 user_id: 2正在访问上述信息:

item_id       created_by    stock_id
   1             1             4
   2             2             5
   3             3             8

在上面,我得到了三行,因为 user_id: 2已创建 is_private: 1 (如果您检查 items)

我尝试了以下方法:

SELECT 
   item_id, created_by, stock_id
FROM items

^ 显然,在上面尝试的查询中我不知道如何执行此操作。

最佳答案

你可以试试这个:

SELECT item_id,
       created_by,
       stock_id
FROM items 
WHERE is_private = 0 OR
      created_by = :user_id

关于php - 显示具有某些特殊条件行的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39072947/

相关文章:

php - ob_start() 在这里的作用是什么

javascript - 像 JavaScript CryptoJS 一样在 PHP 中加密

python - 无法在 OS X 上将 MySQL 导入到 python 中

mysql - SQL根据ID查找两行之间的时间差

mysql - 你如何构建一个允许投票的数据库,类似于 stackoverflow 的做法?

Mysql:以编程方式删除所有外键

javascript - ios 键盘上的搜索按钮不提交表单

php - 链接 MySQL 命令与。原始查询

javascript - 如何使 PHP session 变量等于 JS 变量?

Mysql 5.7 st_distance_sphere 每次返回null