2014-09-22 63 views
0

我是.NET的前端開發人員我對SQL中的數據比較是否按值或按引用進行比較存在疑問。在sql中進行數據比較

SELECT 1 WHERE NULL = NULL - >沒有結果

SELECT 1,其中1 = 1 - >返回的結果提前1

感謝。

+0

http://stackoverflow.com/questions/3201192/what-does-delete-from-table-where-null-null-means – 2014-09-22 03:42:23

+0

'WHERE NULL IS NULL' – Hogan 2014-09-22 03:49:11

+2

作爲從.NET到SQL的開發人員,您可以做的最好的事情就是*忘記您對null的所有知識,因爲它們都不適用。在SQL中,所有的東西都被比較*「按價值」*。對於空SQL,它在語義上將其解釋爲*缺少信息*,*未知信息*或*信息未提供*中的任何一個。這個區別非常微妙但非常重要。在做更多的SQL工作之前,請考慮閱讀關於關係集理論的入門書。 – Yuck 2014-09-22 03:49:47

回答

1

比較是通過價值來完成的,但我認爲你會感到困惑的是NULL值,這實際上意味着「缺失值」。

來比較NULL,你要使用col_name IS NULLcol_name IS NOT NULL而不是標準=!=運營商。

對於MySQL,請參閱Working with NULL Values文檔。 T-SQL有較少的參考IS [NOT] NULL

+0

參見http://en.m.wikipedia.org/wiki/Three-valued_logic – 2014-09-23 01:18:36