程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql isnull用法講解

mysql isnull用法講解

編輯:關於MYSQL數據庫

       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就不會返回任何結果。

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

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved