我是.NET的前端開發人員我對SQL中的數據比較是否按值或按引用進行比較存在疑問。在sql中進行數據比較
SELECT 1 WHERE NULL = NULL - >沒有結果
SELECT 1,其中1 = 1 - >返回的結果提前1
感謝。
我是.NET的前端開發人員我對SQL中的數據比較是否按值或按引用進行比較存在疑問。在sql中進行數據比較
SELECT 1 WHERE NULL = NULL - >沒有結果
SELECT 1,其中1 = 1 - >返回的結果提前1
感謝。
比較是通過價值來完成的,但我認爲你會感到困惑的是NULL
值,這實際上意味着「缺失值」。
來比較NULL
,你要使用col_name IS NULL
或col_name IS NOT NULL
而不是標準=
或!=
運營商。
對於MySQL,請參閱Working with NULL Values文檔。 T-SQL有較少的參考IS [NOT] NULL
參見http://en.m.wikipedia.org/wiki/Three-valued_logic – 2014-09-23 01:18:36
http://stackoverflow.com/questions/3201192/what-does-delete-from-table-where-null-null-means – 2014-09-22 03:42:23
'WHERE NULL IS NULL' – Hogan 2014-09-22 03:49:11
作爲從.NET到SQL的開發人員,您可以做的最好的事情就是*忘記您對null的所有知識,因爲它們都不適用。在SQL中,所有的東西都被比較*「按價值」*。對於空SQL,它在語義上將其解釋爲*缺少信息*,*未知信息*或*信息未提供*中的任何一個。這個區別非常微妙但非常重要。在做更多的SQL工作之前,請考慮閱讀關於關係集理論的入門書。 – Yuck 2014-09-22 03:49:47