原因:
使用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。
結論:
模糊匹配由於不經常使用,所以會導致使用時馬虎大意,最終導致人力抓狂。