2017-01-28 87 views
0

內是有可能的第一列內訂購等MySQL的順序通過柱第一列

SELECT * FROM表,其中........爲了通過價格降序和距離,距離

price holds values 
0, 10, 24, 30 ... 
and distance are values out of the lon/lat calculation. and now it displays it like this: 

    value1(price=30) ... 19,8km 
    value2(price=24) ... 8,2km 
    value3(price=10) ... 48km 
//and then it starts with the entries in which price is 0 with the correct distance order 
    value4(price=0) ... 1,20km 
    value5(price=0) ... 1,28km 
    value6(price=0) ... 2,74km 
    and so on... 

和我想是,即那些在價格是> 0內應當首先顯示它們,但與距離順序方法,然後用價格= 0和距離

所以基本上應該忽略該價格的那些價值本身,0之前的價格> 0,在價格內按距離排序。那個查詢怎麼樣?感謝您的任何幫助:)

所以這就是我想要它;使用ORDER BY 例如

value2(price=24) ... 8,2km 
value1(price=30) ... 19,8km 
value3(price=10) ... 48km 
value4(price=0) ... 1,20km 
value5(price=0) ... 1,28km 
value6(price=0) ... 2,74km 
and so on... 

回答

0

由遞減

由ASC 或 SELECT * FROM價格秩序SELECT * FROM價格秩序給你

+0

非常感謝,但這只是一個正常的順序,但我需要訂購價格> 0的距離,然後價格= 0的距離 – Janus

+0

嘗試訪問此https://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html – Gangga

0

如何創建一個計算列進行排序:

SELECT *, IF(price > 0, 0, 1) AS pricegtzero FROM table WHERE........ ORDER BY pricegtzero, distance