mysql null 值查詢問題

來源:互聯網
上載者:User

標籤:des   使用   ar   檔案   資料   問題   amp   時間   on   

我在開發公司內部的一個項目時遇到一個問題:
select student_quality_id from STUDENT_QUALITY where mark_status=0 and batch_stauts in (2,3)
結 果遇到一直找不到合格student_quality_id ,後來才發現沒有考慮到null值的問題,修改成 select student_quality_id from STUDENT_QUALITY where (mark_status=0 or mark_status IS NULL) and batch_stauts in (2,3) 就OK了,下面是我從MySql手冊上摘錄的關於NULL值的處理。
NULL值的概念是造成SQL的新手的混淆的普遍原因,他們經常認為NULL是和一個Null 字元串‘‘的一樣的東西。不是這樣的!例如,下列語句是完全不同的:
mysql> INSERT INTO my_table (phone) VALUES (NULL);
mysql> INSERT INTO my_table (phone) VALUES ("");
兩個語句把值插入到phone列,但是第一個插入一個NULL值而第二個插入一個Null 字元串。第一個的含義可以認為是“電話號碼不知道”,而第二個則可意味著“她沒有電話”。
在SQL中,NULL值在於任何其他值甚至NULL值比較時總是假的(FALSE)。包含NULL的一個運算式總是產生一個NULL值,除非在包含在運算式中的運算子和函數的文檔中指出。在下列例子,所有的列返回NULL:
mysql> SELECT NULL,1+NULL,CONCAT(‘Invisible‘,NULL);
如果你想要尋找值是NULL的列,你不能使用=NULL測試。下列語句不返回任何行,因為對任何錶達式,expr = NULL是假的:
mysql> SELECT * FROM my_table WHERE phone = NULL;
要想尋找NULL值,你必須使用IS NULL測試。下例顯示如何找出NULL電話號碼和空的電話號碼:
mysql> SELECT * FROM my_table WHERE phone IS NULL;
mysql> SELECT * FROM my_table WHERE phone = "";
在MySQL中,就像很多其他的SQL伺服器一樣,你不能索引可以有NULL值的列。你必須聲明這樣的列為NOT NULL,而且,你不能插入NULL到索引的列中。
當用LOAD DATA INFILE讀取資料時,空列用‘‘更新。如果你想要在一個列中有NULL值,你應該在文字檔中使用N。字面上的詞‘NULL‘也可以在某些情形下使用。見7.16 LOAD DATA INFILE句法。
當使用ORDER BY時,首先呈現NULL值。如果你用DESC以降序排序,NULL值最後顯示。當使用GROUP BY時,所有的NULL值被認為是相等的。
為了有助於NULL的處理,你能使用IS NULL和IS NOT NULL運算子和IFNULL()函數。
對某些列類型,NULL值被特殊地處理。如果你將NULL插入表的第一個TIMESTAMP列,則插入當前的日期和時間。如果你將NULL插入一個AUTO_INCREMENT列,則插入順序中的下一個數字。

mysql null 值查詢問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.