我尝试自动增加字母数字Id(或数字系列)时出现问题
在Mysql中的AB7 AB10 AB9 AB8
上面我有四个条目现在我想要检索最大值(或最高值)。
为此我尝试了查询as = SELECT MAX(RefNo)FROM sample; 但是这给出了结果' AB9'这是错误的,它应该返回' AB10'结果。
为了在Mysql中得到这个,我已经将Query修改为 = SELECT MAX(CONVERT(SUBSTRING_INDEX(RefNo,' B', - 1),UNSIGNED INTEGER))来自样本,其中RefNo喜欢' AB%'
这项工作在mysql中很好但在hibernate(hql)查询中不受支持。
我希望你了解这个场景,请帮我解决这个问题。
答案 0 :(得分:2)
您应该能够使用substring
and cast
来获取字符串的数字部分并将其强制转换为数字。这样的事情(未经测试):
select max(cast(substring(sample.refNo, 3) as INTEGER)) from Sample sample ...