一個mysql菜鳥的經歷。mysql 踩的坑。
1. 值爲空 導致 UNIQUE KEY失效
數據存放在mysql,想通過UNIQUE KEY 和INSERT ON DUPLICATE KEY UPDATE 來清洗重複數據,結果發現插入成功後數據有重複。
發現原因是 UNIQUE KEY裏有NULL值,當UNIQUE KEY 裏有NULL值後,mysql不會監測UNIQUE KEY 認爲有重複。
修復方法是給 各 UNIQUE KEY設定默認值,例如 if(house_type_id,0) as house_type_id。
測試驗證插入數據不會有重複了。
2. 值爲空 導致 判斷條件失效
select if(null in (1),1,0) ,if(not null in (1),1,0) -- 結果是0,0
空值的所有 比較和集合 判斷邏輯都是 null (而不是false),所以加not 也是null(not null=null !)