一千萬個為什麽

搜索

當列為varchar時,在mysql中查找最大值

我有一個這樣的數據的varchar列

top

所以“頂”這個詞後面跟著數字。我試圖在這張表中插入一條記錄,並試圖找出應該進入的下一個值。

無論如何,我可以找到這個專欄的最大值?

也許這樣?

select * from catalog ORDER BY CAST(`catalogid` AS DECIMAL(10,2)) DESC limit1;

我怎麽能塑造上述查詢來解釋只有數字後面的'頂部'

最佳答案

一般來說,您可以使用 最大</代碼> :在

select
    max(catalogid)
from
    catalog

然而,在這裏我們有一個有趣的小問題,我們需要刪除 top

select
    max(cast(substring(catalogid, 4) as decimal(10,2))) as maxid
from
    catalog

你看,在這裏,我們使用 substringcatalogid 字段限制為數字。

另外,您可能想查看聚合函數,因為它們可以非常方便!

轉載註明原文: 當列為varchar時,在mysql中查找最大值