php - 在我的查询中摆脱联合...两个相似的选择具有一个不同的条件

标签 php mysql

假设有一个社交网络,我想向我登录的用户展示他的群组/ friend /家人的最新事件

我在 registry 表中有所有事件,每个事件有 3 个不同的级别

0 => every one can see it
1 => only friends or in case of group, members can see it
2 => only family members can see it 

我还有 2 个包含登录用户的数组 friends_groups AND family

select * from registry where user_id in (implode(',' ,  $groups_friends_array) ) && level < 2 
union
select * from registry where user_id in (implode(',' ,  $family_array) ) && level < 3

有没有办法在不使用 union 的情况下以某种方式做到这一点?可能只有一个选择?

最佳答案

您可以使用 OR 组合两个 WHERE 子句

SELECT...
FROM...
WHERE  (user_id in (implode(',' ,  $groups_friends_array)) AND level < 2) OR
       (user_id in (implode(',' ,  $family_array)) AND level < 3)

关于php - 在我的查询中摆脱联合...两个相似的选择具有一个不同的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16882594/

相关文章:

PHP 在 CSS 中回显

php - 我不知道如何在使用 jquery 删除记录时获取记录的 ID

php - 如何防止 PHP 中的 SQL 注入(inject)?

php - 找不到 Laravel 5.1 View

php - 如何检测MySQL存储过程中的回滚?

PHP 条件问题数据结构

mysql - 在同一台服务器上运行 MariaDB 和 MySQL

mysql - 在 JEE6 环境下访问数据库的最佳方式是什么?

javascript - 网页从MySQL加载图片慢

java - php - 解析单个值到android