【问题标题】:MySQL behaviour when statement has conflicting where conditions语句与 where 条件冲突时的 MySQL 行为
【发布时间】:2019-11-12 21:48:06
【问题描述】:

我今天浏览了一些代码,发现了一个有趣的 MySQL 语句,想知道 MySQL 如何处理逻辑冲突的语句。

这是我所说的一个非常基本的例子:

SELECT * FROM my_table WHERE id = 1 AND id != 1;

我在我的一个数据库上运行它并返回 0 行,但我的问题是,这是否总是返回 0 结果?另外,当发生这样的冲突时,MySQL如何决定是否应该返回一行?

【问题讨论】:

    标签: mysql sql database where-clause


    【解决方案1】:

    没有冲突。 MySQL 对条件逐一进行评估,结果发现您只有两个不能同时为真的条件。

    这个:

    WHERE id = 1 AND id != 1;
    

    其实意思是:

    WHERE 1 != 1
    

    这是否总是返回 0 个结果?

    所以答案是肯定的,这个查询永远不会返回记录。

    【讨论】:

    • 我刚醒来,意识到我基本上只是问了条件逻辑是如何工作的......“为什么 true && false = false?”。这就是为什么你不应该在漫长的一天之后发布问题。感谢您抽出宝贵时间来回答 GMB
    猜你喜欢
    • 2020-04-01
    • 2023-03-03
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    相关资源
    最近更新 更多