1. 程式人生 > 其它 >mysql中MAX取varchar型別最大值問題

mysql中MAX取varchar型別最大值問題

技術標籤:資料篇mysqlsql

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

列印結果