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不近在語言中需要特殊考慮,在數據庫中也是個比較特殊的情況。。



發佈了85 篇原創文章 · 獲贊 146 · 訪問量 52萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章