2009-09-13 48 views
2

我有了这样的发现最大的MySQL时柱为varchar

top<somenumber> 

所以字“顶”后面数字数据的varchar列。我正在尝试在此表中插入一条记录,并试图找出应该进入的下一个值。

是否有无论如何我可以找到此列的最大值?

也许是这样的?

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

我怎样才能塑造上面的查询只占号,后面“顶”

回答

3

好,一般,你可以使用max

select 
    max(catalogid) 
from 
    catalog 

然而,我们在这里有一个有趣的小ISS UE在这里我们需要删除top

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

你看,在这里,我们使用substring限制catalogid领域仅仅是个数字。

此外,您可能想查看aggregate functions,因为它们可以非常方便!

2

如果它总是“顶[N]”,并且要最大N,你可以尝试:

SELECT MAX(CAST(SUBSTR(`catalogid`,4) AS DECIMAL(10,2)) ...