php编号从mysql asc排序

时间:2014-01-25 15:41:54

标签: php mysql sorting opencart

我需要通过ASC获取订单号。 在我的mysql表中用 - (例如1-2; 2-3; 15-60等)

现在我收到订单:

15-60; 1-2; 2-3;

为什么不1-2; 2-3; 15-60?

我正在我的opencart中进行新的排序。 我使用的新教程排序教程:sort by size opencart

3 个答案:

答案 0 :(得分:3)

您可以尝试:

SELECT *
FROM yourtable
ORDER BY numbers + 0

自动将VARCHAR列转换为数字,并正确应用顺序。

请参阅小提琴here

答案 1 :(得分:0)

假设您的订单号实际上是散布着连字符的数字串,您默认会获得字符串排序顺序。

您可以将字符串转换为整数,但也许更好的方法是存储由零位字符填充的订单号,以便将15-60,1-2,2-3存储为015-060,001-002 ,002-003(或任何程度的填充是合适的)。然后字符串排序顺序和数字排序顺序将相同,您不需要进行转换。

答案 2 :(得分:0)

您也可以使用此

 SELECT  *
 FROM yourtable
 ORDER BY CAST(numbers as unsigned)

DEMO HERE