【发布时间】:2012-10-08 02:13:11
【问题描述】:
我有一列称为订单号 (orderNum) 的数据,可以是以下任何内容:
1124, 203, 5467, MANUAL1, MANUAL34, DEMO12, DEMO998, INTERNAL2312, INTERNAL232
本质上,我需要编写一个 SQL 查询来检索某种类型的“最大”订单号。整数的实际顺序是微不足道的,但是 MySQL 对VARCHARs 进行的排序有点古怪。所以在上面的数据集中,如果我正在寻找下一个手动订单号,我需要能够知道 MANUAL34 是最后使用的手动订单号,INTERNAL2312,DEMO12(数字会消失依次增加 1)。有没有一种方法可以实现这一点,而不必拉出整个列并在我的 Java Web 服务中对其进行排序?
【问题讨论】:
-
这里真正的问题是
orderNum字段结合了order实体的两个属性:类型和编号。最好更改数据库架构以将这些属性分隔到它们自己的列中。 -
@Xint0 绝对正确,但不幸的是,该系统已经投入生产。不过还是谢谢你的建议。