我有一个varchar列,其中包含这样的数据
top<somenumber>
所以“顶部”这个词后跟数字。我正在尝试在此表中插入一条记录,并试图找出应该进入的下一个值。
无论如何我能找到这个栏目的最大值吗?
也许是这样的?
select * from catalog ORDER BY CAST(`catalogid` AS DECIMAL(10,2)) DESC limit1;
我如何塑造上述查询以仅考虑后跟'top'
的数字答案 0 :(得分:3)
嗯,一般来说,你可以使用max
:
select
max(catalogid)
from
catalog
但是,我们在这里有一个有趣的小问题,我们需要删除top
:
select
max(cast(substring(catalogid, 4) as decimal(10,2))) as maxid
from
catalog
您知道,我们在这里使用substring
将catalogid
字段限制为该数字。
此外,您可能需要查看aggregate functions,因为它们非常方便!
答案 1 :(得分:2)
如果它总是“顶部[N]”,并且你想要最大N,你可以尝试:
SELECT MAX(CAST(SUBSTR(`catalogid`,4) AS DECIMAL(10,2)) ...