尝试创建一个查询来生成以下用户列表:
A.) 登录用户尚未关注
B. )登录用户尚未查看并跳过(FOLLOWER_SWIPES 表)
这是我的查询,由于某种原因,它仍然向用户显示登录用户过去已跳过:
SELECT u.uid, u.full_name, u.bio, u.thumb_img, u.college, u.HEADER_IMG
FROM users AS u
WHERE u.uid <>'$uid'
AND u.uid <> ANY(
SELECT FOLLOWING_UID_FK
FROM FOLLOWERS
WHERE UID_FK='$uid'
)
AND u.uid <> ANY(
SELECT SWIPPED_UID_FK
FROM FOLLOWER_SWIPES
WHERE UID_FK =$uid
)
AND u.college_id='$college'
ORDER BY u.last_feed_load DESC
LIMIT 0 , 30
最佳答案
条件:
AND u.uid <> ANY(
SELECT SWIPPED_UID_FK
FROM FOLLOWER_SWIPES
WHERE UID_FK =$uid
)
不是一个非常严格的条件。尝试使用 ALL
而不是 ANY
:
AND u.uid <> ALL (SELECT SWIPPED_UID_FK
FROM FOLLOWER_SWIPES
WHERE UID_FK = $uid
)
或者使用等效的:
AND u.uid NOT IN (SELECT SWIPPED_UID_FK
FROM FOLLOWER_SWIPES
WHERE UID_FK = $uid
)
关于mysql - Double <> ANY 查询不适用于第二个 <>ANY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30905501/