萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql isnull用法講解

mysql isnull用法講解

   mysql isnull用法講解

  MySQL 可以使用 ISNULL() 函數。不過它的工作方式與微軟的 ISNULL() 函數有點不同。

  我們先來看幾個is null sql用法:

  select * from newtable where name is null //取得newtable表中name為null值的所有數據

  select * from tbas_table where title not is null //取得tbas_table表中title字段不為null的所有數據

  再看如下語句:

  SELECT `click`,`title`,`created` FROM dcfsda_table WHERE click is not null

  再看如下語句:

  SELECT `id`,`title`,`describle` FROM bnsdh_table WHERE describle is not null

  我們可以看到此表有 1025014 數據,其中 describle 列只有一條是 null 值。也就是 describle 列的索引會存儲此列的 1025014 條記錄的信息,只有一條沒有存。在選擇怎麼的時候, DB2 優化器會試著用這樣兩種方式,第一種是從表中取出每條記錄,然後看它的 describle 值是否為空。第二種是,先從索引找到 describle 列所有非空的數據在表中的位置,然後在掃描表時,如碰到這些位置,則不用取出數據判斷是否為空,直接跳到下一條記錄。

  is not null 高效率應用:

  有些地方有這樣的說法,is not null 不能利用索引,所以要將其改寫成其他語句,以便能夠利用索引提高效率。下面是測試情況:

  SQL 語句: SELECT click FROM bsga_table WHERE click is not null

  改寫後的SQL 語句 : SELECT click FROM bsga_table WHERE click > 0 and click < 100001

  無論是 IS NULL 還是 IS NOT NULL ,並不是如網上所說的 is null 或者 is not null 不能利用索引,而是在不同的表數據結構環境下,有可能會利用索引有可能不利用索引,而決定如何執行查詢的標准就是性能。

  擴展閱讀:

  is null 是判斷值是不是null,用=null則是跟null進行比較運算,而null跟任何值作比較運算結果都是false,也就不會有任何查詢紀錄。

  比如你有條記錄值是null,用is null能查出來,用=null就不會返回任何結果。

        :更多精彩文章請關注三聯編程教程欄目。

copyright © 萬盛學電腦網 all rights reserved