在SQL中,"WHERE id <> 0"子句的意思是什么?

9

查询: SELECT id, name, FROM users u WHERE **id <> 0** LIMIT 50 OFFSET 0

这里的id <> 0子句是什么意思? 它是表示:

id不等于零


你执行查询来观察结果了吗? - Guru
5个回答

17

<> 表示 "不等于" (在某些数据库管理系统中也可以写成 !=


5
这意味着不相等,显然我必须至少提交30个字符的答案。

3
这句话的意思是,“ID不等于0”。 因此,ID可以大于或小于0。

1
它不会返回大于 或者 小于0的结果吗? :) - Ian Pugsley

0
这意味着您正在获取所有id不为0(零)的记录,我有时只是用它来检查某些记录是否已保存(如果记录具有ID,则表示已保存)。

-1

它意味着只包括字段id的值大于或小于0的结果,基本上是具有非零id的记录 - 但实际上这不应该是可能的,如果是这样,我建议重新考虑您的表设计。


为什么不能有不等于零的ID呢? - user330315
@a_horse_with_no_name:我承认这是一种概括,但我想说,如果某件事情无法被“识别”,那么它(总的来说)就没有存在的必要。当然,每个情况都有其解释。 - Grant Thomas
我还是不明白你的意思,抱歉。“获取所有行,其中列'id'的值不等于零”是一个完全合法的条件。这与“<> 42”没有任何区别。 - user330315
@a_horse_with_no_name:我并不是说这个条件不合法——当然它是合法的;我的观点是,除非你要持久化那些有id字段但不需要填写标识符的东西,否则你真的不应该要求它,而我会建议(总体上)这不是一个好的数据库设计思路。如果在你的设计中0是一个有效的标识符,那么在这种情况下排除它意味着构造一个查询来排除单个记录——这里的关键是0,而不是id - Grant Thomas
我有点同意:ID <> 0 是一种代码异味,例如,ID = 0 是否是一个可以更好地被建模的“神奇”值呢? - onedaywhen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接