2017-01-28 56 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