1.錯誤描述:
由於公司所開發項目使用的是雪花ID,所以最近在使用雪花ID做關聯查詢時出現原本查詢結果是一條,但是最終查詢出來的卻是兩條或者多條,造成項目取數據時報錯。
2.錯誤原因
本人在網上找了許久,暫未發現明確原因。但是通過觀察查詢出來的數據發現,數據的主鍵id是相鄰的!然后根據mysql官方不推薦使用雪花id作為主鍵的一些原因,本人大概推測。應該就是雪花id引起的查詢數據出錯!
3.解決辦法
解決辦法本人推薦2個:
1.盡量不使用雪花id作為主鍵
如果是剛開始建表時,盡量不使用雪花id作為主鍵即可避免該問題
2.查詢時使用CAST(id,CHAR)函數
如果是必須使用雪花id,可以在關聯查詢時涉及到雪花id時使用CAST()函數將id的類型強轉為CHAR類型進行查詢,查詢出來的結果就是正確的。但是查詢速度太慢!