Oracle資料庫模糊查詢語句一個容易忽略的結果:空記錄

來源:互聯網
上載者:User

原因:

使用SQL語句如下:

select count(*) from test;

結果為1390.

select count(*) from test where bb not like ‘%禁用%'

結果為393.

實際瀏覽過程中發現未禁用結果集肯定超過393條記錄。

過程:

1、首先懷疑字元集的問題,也許是用戶端字元集與伺服器字元集不匹配。在別人的機器上使用上述SQL語句後,反反覆複,類似替換,結果都相同。

2、仍然懷疑是字元集的問題,顛三倒四沒有發現問題真實原因,幾近抓狂。

3、偶然發現bb欄位有許多為空白,仔細分析一下,發現bb not like '%禁用%'不會匹配空記錄,於是改為

select count(*) from test where bb not like ‘%禁用%' or bb is null

結果為1356。

結論:

模糊比對由於不經常使用,所以會導致使用時馬虎大意,最終導致人力抓狂。

更多Oracle相關資訊見Oracle 專題頁面 http://www.bkjia.com/topicnews.aspx?tid=12

聯繫我們

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