一、問題由來
最近生成環境剛發布了一個版本,本人負責優化的一個功能在進行測試時,報錯了一個異常,duplicate key;去百度里面看了一下,
意思很明確就是建重復,而且錯誤是在Java代碼中拋出來的。
二、問題分析
自己立馬去查看Java代碼,發現這樣寫是沒有問題的,問題出在查詢出來的結果進行轉換時,鍵有重復的,可是有不同的值。因此
才報了一個鍵重復的錯誤。搞清楚問題的原因后就知道怎么解決了。
三、解決方案
解決辦法的核心就是讓返回的結果中,鍵沒有重復的值,這樣就可以解決問題。這個是原來錯誤的查詢語句,
更改后的查詢語句為
主要做了兩個改動,一個是按照鍵進行分組查詢,這樣就可以去重,其次是取值時,使用max函數取最大值即可。發布到測試環境,添加了測試數據
后,測試結果正確,修改 方式可行。