mysql isnull用法講解

來源:互聯網
上載者:User

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.