今天日志出現例外,一步一步debug發現SQL陳述句回傳值出錯,進一步發現是max()函式回傳出錯,點擊跳轉解決辦法,趕時間的朋友可以去獲得答案,當然我還是希望大伙看看原由,
select max(HTMBXH) from biz_mn_contract_temp;

回傳值按理應該是10 ,結果回傳了9,

網上查找后發現 是因為該欄位的資料型別為 字符型 的時候 max會 自動補0 ,
例如 HTMBXH:varchar(10) ,MySQL會自動補0然后比較,

例如

正常的話 max應該回傳 8999999999 但是回傳的卻是9 ,

因為MySQL比較是將9補0直到列最大位 變成9000000000 所以 9000000000>8999999999
按照這個理論 91 和9000000001 比較 ,91補0, 9100000000>9000000001 所以 回傳91

解決辦法:(max min都適用)
1. 直接修改列屬性 改成 數值型 或者 日期型 即可
2. 直接強制轉換型別 例如
select max(HTMBXH+0) from biz_mn_contract_temp;
這樣可以獲取正確的數值,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/499008.html
標籤:MySQL
