在学习一些 SQL 时,我偶然发现了这个看似不正确的子句:
SELECT item
FROM inventory
WHERE 20 => price < 500;
查询没有得到预期的结果,应该如下所示:
SELECT item
FROM inventory
WHERE price => 20 AND price < 500;
我知道有更好的方法来解决这个问题。我真正感兴趣的是为什么第一个查询根本没有失败?它返回结果,当然不是我们想要的结果,但我预计它会完全失败。
有人可以帮助我理解第一个查询的作用吗?我找不到任何有用的信息。
MySQL 比较运算符返回 0 或 1(或 null),并且该返回本身可以用于比较。
20 >= price < 500
正在比较 20 >= 价格,然后查看 0 或 1 或 null 是否为 < 500 (which it will be, unless price is null). So the overall expression will be either 1 (true) or null.