我要从ASC那里得到订单号码。在我的mysql表中,它用- (ex )编写。1-2;2-3;15-60等)
现在我得到了秩序:
15-60;1-2;2-3;
为什么不是1-2;2-3;15-60?
我在我的opencart里做新的分类。我使用的进行新排序的教程:按大小排序opencart
发布于 2014-01-25 15:43:54
你可以尝试:
SELECT *
FROM yourtable
ORDER BY numbers + 0
若要自动将VARCHAR列强制转换为数字,并正确应用顺序,请执行以下操作。
请看小提琴这里。
发布于 2014-01-25 16:03:44
假设您的订单号实际上是带有连字符的数字字符串,默认情况下您将得到字符串排序顺序。
您可以将字符串转换为整数,但更好的方法可能是存储由零数字字符适当填充的序号,以便将15-60、1-2、2-3存储为015-060、001-002、002-003 (或适当的填充程度)。然后字符串排序顺序和数字排序顺序将是相同的,您不需要进行强制转换。
发布于 2014-01-25 16:16:24
您也可以使用这个
SELECT *
FROM yourtable
ORDER BY CAST(numbers as unsigned)
这里的演示
https://stackoverflow.com/questions/21352593
复制相似问题