在sql语句中使用不等于<>符号是不是很差的编程习惯?

Muk*_*med 1 sql

<>SQL语句中使用不等号的糟糕编程习惯吗?

我在表列类型中有三个值.值可以是0,1或2.哪个SQL语句更好?

1)WHERE类型<> 2
2)WHERE类型(0,1)

Tho*_*ner 6

两者都不比另一个好.引入新类型后,您可能需要更改一个语句或另一个语句.

一个例子:假设类型意味着"谁支付".

  • 0 =供应商付款
  • 1 =客户支付
  • 2 =我们的销售部门支付

所以我们的查询意味着"我们不付钱".介绍时

  • 3 =我们的采购部门支付

那么你必须改变

WHERE type <> 2
Run Code Online (Sandbox Code Playgroud)

WHERE type NOT IN (2,3)
Run Code Online (Sandbox Code Playgroud)

介绍时

  • 3 =其他经销商支付

那么你必须改变其他查询

WHERE type IN (0,1)
Run Code Online (Sandbox Code Playgroud)

WHERE type IN (0,1,3)
Run Code Online (Sandbox Code Playgroud)

如果你想让它超级正确,你有一个查找表:

type  meaning                       wepay
0     supplier pays                 false
1     client pays                   false
2     our selling department pays   true

和查询:

WHERE type NOT IN (select type from types where wepay = true)
Run Code Online (Sandbox Code Playgroud)

要么

WHERE type IN (select type from types where wepay = false)
Run Code Online (Sandbox Code Playgroud)

同样,选择两个选项中的哪一个并不重要.