Mysql按两列独立排序

时间:2014-03-07 12:14:26

标签: mysql sql

我在mysql中有一个表:

表1

ID       DiscountPrice    ActualPrice
1        2299.00             2874.00
2        0                   50
3        2999.00             3499.00
4        0.00                4999.00
5        3899.00             5999.00

我希望这应该按排序顺序排列(最低应该先排序)

输出:

ID: 2 , 1, 3, 5, 4

请帮帮我。

5 个答案:

答案 0 :(得分:2)

使用LEAST()

SELECT * 
FROM Table1 
ORDER BY 
  LEAST(
    IF(DiscountPrice=0, 1E18, DiscountPrice), 
    IF(ActualPrice=0, 1E18, ActualPrice)
  )

- 我正在做IF,因为你只需要处理非零值。

答案 1 :(得分:2)

最低值是什么?

一个简单的

SELECT * FROM table1 WHERE 1 ORDER BY DiscountPrice

SELECT * FROM table1 WHERE 1 ORDER BY ActualPrice

SELECT * FROM table1 WHERE 1 ORDER BY DiscountPrice, ActualPrice ASC

应该适合你

答案 2 :(得分:1)

SELECT * FROM table1 ORDER BY DiscountPrice

你也可以这样做 SELECT * FROM tabl1 ORDER BY DiscountPrice, ActualPrice 这样,如果DiscountPrice等于两者,它将查看ActualPrice。

答案 3 :(得分:1)

这可能会解决您的问题。

SELECT `id`, `ActualPrice` FROM "your_table_name" ORDER BY `ActualPrice` ASC

答案 4 :(得分:1)

result = mysql_query(SELECT * FROM table1 WHERE 1 ORDER BY DiscountPrice, ActualPrice ASC)

while(row = mysql_fetch_array(result))     
{
   a=row['DiscountPrice'];
   b=row['ActualPrice'];
   echo min(a);
   echo min(b);
}