【问题标题】:MYSQL query using OR and AND on same sentence在同一个句子上使用 OR 和 AND 的 MYSQL 查询
【发布时间】:2012-03-09 05:29:25
【问题描述】:

我需要帮助编写一个将验证第一个表达式的查询,如果它为真,将验证以下表达式。比如:

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

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

有什么帮助吗?谢谢,

【问题讨论】:

  • 你的逻辑在这里没有任何意义。 tag_id 不能同时满足AND 的两个条件。您能否解释一下您想要达到的目标,可能包括示例数据和预期结果?

标签: mysql subquery case exists


【解决方案1】:

字里行间读一读,大概是这样的:

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)

【讨论】:

  • 感谢您的帮助,但似乎这不适用于我的查询,我已经有很多连接。有没有办法 mysql 验证 1 表达式,如果它是真的验证下一个?
  • @Henrique:正如我在对该问题的评论中提到的,您需要更好地解释您要解决的问题。向您的问题添加示例数据和预期结果将大有帮助。
  • 我明白了,您的逻辑似乎是正确的,但脚本有点复杂,无法简单解释。我会按照这个逻辑工作。谢谢
猜你喜欢
  • 2023-03-18
  • 1970-01-01
  • 2012-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-13
相关资源
最近更新 更多