我在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
请帮帮我。
答案 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);
}