mysql中MAX取varchar型別最大值問題
阿新 • • 發佈:2020-12-22
DB中的資料
req表的dtime(毫秒)
718562
688359
617508
521825
432790
4305059
256805
2528112
237190
2334679
22647
1798347
1748652
1046697
首先表中dtime的型別是varchar(至於為何是varchar可能是領導說話“一言九鼎”吧)
表中的資料是按照dtime的倒序排序的,從中可以看到mysql再對varchar型別進行排序的時候,是按照位進行比較的。比如7>6,那麼7>61.
SELECT MAX(dtime) FROM req
列印結果
所以取最大值的時候,718562就是最大的了,實際最大值是4305059
解決上述問題,就是要將字元轉換成數值型,然後再取最大值,使用mysql的covert函式,CONVERT(欄位,型別)
SELECT MAX(CONVERT(dtime,UNSIGNED)) FROM req
列印結果