2014-01-25 53 views
3

我需要由ASC獲得訂單號碼。 在我的MySQL表它寫有 -PHP數字排序從MySQL ASC

現在,我得到命令(例如1-2; 2-3 15-60等):

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

爲什麼不是1-2; 2-3; 15-60?

我在我的opencart中進行新的排序。 教程做出新的排序我用:sort by size opencart

+0

由於這是具體到Opencart的,應該在http://area51.stackexchange.com/proposals/77558/opencart詢問代替。 – Pacerier

回答

3

你可以嘗試使用:

SELECT * 
FROM yourtable 
ORDER BY numbers + 0 

自動投你VARCHAR列的數字,並正確運用順序。

請參閱小提琴here

0

假設您的訂單號碼實際上是連字符的數字串,默認情況下您將獲得字符串排序順序。

您可以將字符串轉換爲整數,但也許更好的方法是存儲適當填充零位數字符的順序號,以便將15-60,1-2,2-3存儲爲015-060,001- 002,002-003(或任何適合的填充程度)。然後,字符串排序順序和數字排序順序將相同,並且您不需要執行投射。

0

,你也可以使用這個

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

DEMO HERE