我有一个名为订单号(orderNum)的数据列,可以是以下内容:
1124, 203, 5467, MANUAL1, MANUAL34, DEMO12, DEMO998, INTERNAL2312, INTERNAL232
基本上,我需要编写一个SQL查询来检索"最大的"某种类型的订单号。作为整数的实际订单是微不足道的,但MySQL对VARCHAR
进行的排序有点古怪。因此,在上面的数据集中,如果我正在寻找下一个手工订单号,我需要能够告诉MANUAL34
是最后使用的手工订单号,INTERNAL2312
,{{1} (数字将按顺序上升1)。有没有办法实现这一点,而无需拉出整个列并在我的Java Web服务中对其进行排序?
答案 0 :(得分:4)
您可以执行以下操作:
select * from testing where value like 'MANUAL%'
order by CAST(right(value, length(value)-length('MANUAL')) as UNSIGNED) desc
LIMIT 1