0

例如,当我尝试自动递增字母数字 ID(或数字系列)时出现问题

在 Mysql "Sample" 表 'RefNo' 列中(Varchar 类型)

AB7 AB10 AB9 AB8

上面我有四个条目,现在我想检索最大值(或最大值)。

为此,我尝试查询 as = SELECT MAX(RefNo) FROM sample; 但这给出的结果为“AB9”,这是错误的,它应该返回“AB10”作为结果。

为了在 Mysql 中得到这个,我修改了 Query as = SELECT MAX(CONVERT(SUBSTRING_INDEX(RefNo,'B',-1),UNSIGNED INTEGER)) from sample where RefNo like 'AB%'

这项工作在 mysql 中很好,但在 hibernate (hql) 查询中不受支持。

我希望您了解情况,并请帮助我解决问题。

4

1 回答 1

2

您应该能够使用substringcast获取字符串的数字部分并将其转换为数字。类似的东西(未测试):

select max(cast(substring(sample.refNo, 3) as INTEGER)) from Sample sample ...
于 2012-09-25T12:57:29.137 回答