对数据列进行排序以检索最大文本值

时间:2012-10-17 18:20:40

标签: mysql search select

我有一个名为订单号(orderNum)的数据列,可以是以下内容:

1124, 203, 5467, MANUAL1, MANUAL34, DEMO12, DEMO998, INTERNAL2312, INTERNAL232

基本上,我需要编写一个SQL查询来检索"最大的"某种类型的订单号。作为整数的实际订单是微不足道的,但MySQL对VARCHAR进行的排序有点古怪。因此,在上面的数据集中,如果我正在寻找下一个手工订单号,我需要能够告诉MANUAL34是最后使用的手工订单号,INTERNAL2312,{{1} (数字将按顺序上升1)。有没有办法实现这一点,而无需拉出整个列并在我的Java Web服务中对其进行排序?

1 个答案:

答案 0 :(得分:4)

您可以执行以下操作:

select * from testing where value like 'MANUAL%' 
order by CAST(right(value, length(value)-length('MANUAL')) as UNSIGNED) desc 
LIMIT 1

Link to SQL Fiddle