我只想询问如何获取VARCHAR ID的最大数量;
ID
2014-00001
2014-00002
2014-00006
2014-00003
如何获得此列的最大值?
还有一件事我还想知道
HS-01
HS-02
HS-09
HS-03
如何获得此列的最大值?
答案 0 :(得分:0)
不是在JAVA中,而是直接在mysql中。像这样的东西可能会起作用
SELECT MAX(SUBSTRING_INDEX(ID,'-',-1) + 0) ...
说明: substring_index从分隔符' - '的第一次出现开始选择字符串。然后添加0以将字符串转换为整数。然后选择最大值。
它没有经过测试,所以你可能需要调整一下。
答案 1 :(得分:0)
这应该有效。它将在2014-之后获得角色,然后将它们转换为int,然后获得最高的角色。对于HS-01,请更改(ID, 6)
(ID, 4)
select
max(cast(substring(ID, 6) as UNSIGNED)) as maxid
from
table
施法:http://dev.mysql.com/doc/refman/5.6/en/cast-functions.html#function_cast
子字符串:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring