mysql - Double <> ANY 查询不适用于第二个 <>ANY

标签 mysql sql select any

尝试创建一个查询来生成以下用户列表:

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/

相关文章:

SQL 订单号按字母顺序排列

mysql - MySQL中以下变量初始化风格有什么区别?

mysql - SQL查询以查找在连接表中没有特定组ID的用户

php - XSLT/Xpath : Selecting a preceding comment

mysql - 如何从 MySQL 中的字符串中删除所有非字母数字字符?

mysql - 为 liquibase 中的插入查询定义变更集

mysql - 连接 3 个 MySQL 表的最佳方法

mysql - 查询以计算前几行中出现的数字计数

php - Cakephp 中的 UNION 语法

MYSQL UTF8_bin 不区分大小写的唯一索引