mysql - mysql如何让条件或条件优先于其他条件?

标签 mysql

我有一个使用子查询的 sql 查询。

SELECT t.id FROM subjects t 
where t.topic_id IN (13,11) 
  AND t.id  not in (select subject_id 
                    from user_visited_subjects uvs
                    where uvs.user_id = 3 )  
  OR t.id in (select subject_id
              from user_subject_suggestions uss 
              where uss.user_id = 3 )  
limit 10

我要给优先级或条件意味着sql应该检查查询中是否有任何记录

OR t.id in (select subject_id from user_subject_suggestions uss where uss.user_id = 3 )

然后检查其他条件。

请指教。

谢谢

最佳答案

只需使用括号。

例子:

SELECT t.id FROM subjects t 
WHERE t.id IN (SELECT subject_id FROM user_subject_suggestions uss WHERE uss.user_id = 3 )
    OR (t.topic_id IN (13,11) 
        AND t.id  NOT IN (SELECT subject_id FROM user_visited_subjects uvs WHERE uvs.user_id = 3 ))
LIMIT 10

关于mysql - mysql如何让条件或条件优先于其他条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46170118/

相关文章:

php - 获取所有 MySQL 数据库并将其发送到电子邮件的 Cronjob

MySql 插入并选择全合一

mysql - 如何加入表格?

mysql - 仅在逗号 mysql 后存储数字

mysql - 使用 join 的替代语法

mysql - 尝试连接 mysql

mysql - 将 SQL Server 2008 迁移到 MySQL 5

mysql - 在 UPDATE 中使用 WHERE 和 SET

php - 如何将存储的密码从 SHA1 更新为 password_hash

mysql - mysql如何锁定一个表而不影响其他表