2012-04-23 77 views
0

我要訂購此規則上升MySQL查詢:x-y/xMySQL的ORDER BY XY/X ASC

X =價格

Y = price2

價格和price2是從MySQL中的列表。

我有這個查詢,但不幸的是沒有工作。

SELECT * 
FROM albums 
WHERE price2 > 1 
ORDER BY price - price2/price ASC 

感謝您的關注。

+2

究竟你是 「不工作」 是什麼意思?有錯誤嗎?你沒有得到結果嗎?你得到的結果,但他們不是你所期望的?如果可以,請添加例子。 – Wiseguy 2012-04-23 15:13:52

+1

查詢確實給出了一個沒有錯誤的結果,至少是結果是不是意外? http://sqlfiddle.com/#!2/05344/1 – 2012-04-23 15:16:46

回答

3

嘗試了這一點:

$SQLquery = "SELECT * FROM albums WHERE price2 > 1 ORDER BY (price-price2)/price ASC"; 

$SQLquery = "SELECT * FROM albums WHERE price2 > 1 ORDER BY ((price-price2)/price) ASC"; 
3

你應該嘗試:

SELECT * FROM albums 
WHERE price2 > 1 
ORDER BY ((price - price2)/price) ASC 

SELECT albums.*, ((price - price2)/price) myvar FROM albums 
WHERE price2 > 1 
ORDER BY myvar ASC 
+0

這是答案: 'SELECT * FROM albums WHERE price2> 1 ORDER BY(price - price2)/ price ASC' – CBuzatu 2012-04-23 15:18:32

0

順序按基於指定列的作品。您可以從基表中創建一個視圖或臨時表,其中包含一個具有基於該公式的值的新列,然後對該列進行排序。

+2

MySQL不需要至少,它會高興地排序大多數表達式。 – 2012-04-23 15:19:18