mysql in函數結果不同預期,異常null處理 好幾次合服後,游戲裡面的賬號達到了100w上,整點的一些操作導致服務器響應很慢,後來發現,作為研發方我們沒必要存沒有實際內容的賬號,那游戲來說就是,沒必要存沒有角色的賬號,畢竟有角色的賬號有的服甚至到不了百分之一。 於是決定刪除這些沒角色的賬號。 select count(*) from user; +----------+ | count(*) | +----------+ | 1004897 | +----------+ select count(*) from player; +----------+ | count(*) | +----------+ | 57342 | +----------+ delete from user where id not in (select user_id from player) +----------+ | count(*) | +----------+ | 0 | +----------+ 怎麼想都覺得納悶,因為user的id跟player的user_id都是唯一的 無意間想到null的情況。 一查果然 select user_id from player 裡面 有null的情況存在導致結果出現異常。 刪除 那條記錄後一切正常 看來null不近在語言中需要特殊考慮,在數據庫中也是個比較特殊的情況。。