2014-03-07 32 views
0

我在MySQL的一個表:mysql命令由兩個colums independetly

表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

最低? – Mubo

+0

最低價值是什麼?一個簡單的'SELECT * FROM table1 WHERE 1 ORDER BY DiscountPrice'應該可以爲你工作 – rsakhale

+0

你想在哪個基礎上對它進行排序? 'ctualPrice'或'DiscountPrice'或'ActualPrice''DiscountPrice' ??? –

回答

2

使用LEAST()

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

- 我做IF,因爲您需要只處理非零值。

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 

應該爲你

1

SELECT * FROM table1 ORDER BY DiscountPrice

工作

您也可以做 SELECT * FROM tabl1 ORDER BY DiscountPrice, ActualPrice 這樣萬一DiscountPrice等於他們兩個都會看ActualPrice。

1

這可能會解決你的問題。

SELECT `id`, `ActualPrice` FROM "your_table_name" ORDER BY `ActualPrice` ASC 
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); 
} 
在DiscountPrice或ActualPrice