<>在SQL语句中使用不等号的糟糕编程习惯吗?
我在表列类型中有三个值.值可以是0,1或2.哪个SQL语句更好?
1)WHERE类型<> 2
2)WHERE类型(0,1)
两者都不比另一个好.引入新类型后,您可能需要更改一个语句或另一个语句.
一个例子:假设类型意味着"谁支付".
所以我们的查询意味着"我们不付钱".介绍时
那么你必须改变
WHERE type <> 2
Run Code Online (Sandbox Code Playgroud)
至
WHERE type NOT IN (2,3)
Run Code Online (Sandbox Code Playgroud)
介绍时
那么你必须改变其他查询
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)
同样,选择两个选项中的哪一个并不重要.