假设有一个社交网络,我想向我登录的用户展示他的群组/ 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/