在同一个句子上使用OR和AND的MYSQL查询

时间:2012-02-17 20:02:18

标签: mysql subquery case exists

我需要帮助编写一个验证第一个表达式的查询,如果是真的,则需要验证以下表达式。类似的东西:

SELECT 
  name 
FROM 
  names 
WHERE 
  (tag_id = 1 OR tag_id = 2) AND (tag_id = 3 OR tag_id = 4)

尝试使用if和存在的子查询,但没有成功。

有任何帮助吗?谢谢,

1 个答案:

答案 0 :(得分:3)

稍微阅读一下这些行,或许是这样的:

SELECT n1.name
    FROM names n1
        INNER JOIN names n2
            ON n1.name = n2.name
    WHERE (n1.tag_id = 1 OR n1.tag_id = 2)
        AND (n2.tag_id = 3 OR n2.tag_id = 4)