理解一个奇怪的 SQL 子句

问题描述 投票:0回答:1

在学习一些 SQL 时,我偶然发现了这个看似不正确的子句:

SELECT item 
FROM inventory 
WHERE 20 => price < 500;

查询没有得到预期的结果,应该如下所示:

SELECT item 
FROM inventory 
WHERE price => 20 AND price < 500;

我知道有更好的方法来解决这个问题。我真正感兴趣的是为什么第一个查询根本没有失败?它返回结果,当然不是我们想要的结果,但我预计它会完全失败。

有人可以帮助我理解第一个查询的作用吗?我找不到任何有用的信息。

mysql conditional-statements mariadb where-clause clause
1个回答
0
投票

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.

© www.soinside.com 2019 - 2024. All rights reserved.