我正在尝试从数据库表中获取视频。条件:仅当用户的隐私设置不限制观看时,才应包含视频。
视频表:
隐私可以是 0、1、2 或 3。
关系表:
假设我想获取所有视频的页面,但不应该包含那些我不是朋友的人的视频。(稍后,我将不得不扩展此查询以包括“联系人”)。
这意味着应查询具有此隐私设置的所有视频:
隐私 = 0
隐私!= 1(个人资料视频被隐藏)
隐私 = 3我在这个成员的朋友列表中
我的用户 ID 是 1。
我尝试了这个查询,但它没有给我想要的结果:
SELECT videos.*,
FROM `video_table` AS `videos`
WHERE
(
videos.privacy != 1
OR (
videos.privacy = 3
AND '1' IN (
SELECT friendslist.relationid
FROM friendslist
WHERE friendslist.userid = videos.userid
AND friendslist.friend = 'yes'
)
)
)
LIMIT 20
我想IF语句只能用在查询的选择部分?
伪代码查询: SELECT all videos WHERE privacy != 1 AND IF (privacy = 3) { myuserid must be on users_friendslist} )
如何显示所有视频,但排除我不是朋友的人的视频?