2013-06-03 149 views
0

我正在爲修改MySQL查詢的ORDER BY子句的電子商務平臺編寫模塊。ORDER BY子句中的子查詢MySQL

我只能訪問ORDER BY語句後的任何內容。

我想在計算列上執行ORDER BY語句。

" ORDER BY (SELECT (shop_product.price - shop_product.sale_price) as pSavings) ASC " 

雖然我不知道我怎麼會去這或者其甚至有可能因爲我沒有訪問SELECT語句生成計算列?

+0

沒有必要在'ORDER BY'子句中設置'as'語句。刪除選擇 – Yogus

回答

3

如果你的意思是這個(那麼很可能):

ORDER BY (shop_product.price - shop_product.sale_price) ASC 
+0

請小心以爲這會導致全表掃描 – Orangepill

+0

如果存在WHERE條件,則不完全正確。由於數據庫會在排序前先過濾掉不必要的行。 – invisal

0

你可以用這個試試。

SELECT (shop_product.price - shop_product.sale_price) as pSavings ORDER BY pSavings ASC;