我正在爲修改MySQL查詢的ORDER BY子句的電子商務平臺編寫模塊。ORDER BY子句中的子查詢MySQL
我只能訪問ORDER BY語句後的任何內容。
我想在計算列上執行ORDER BY語句。
" ORDER BY (SELECT (shop_product.price - shop_product.sale_price) as pSavings) ASC "
雖然我不知道我怎麼會去這或者其甚至有可能因爲我沒有訪問SELECT語句生成計算列?
我正在爲修改MySQL查詢的ORDER BY子句的電子商務平臺編寫模塊。ORDER BY子句中的子查詢MySQL
我只能訪問ORDER BY語句後的任何內容。
我想在計算列上執行ORDER BY語句。
" ORDER BY (SELECT (shop_product.price - shop_product.sale_price) as pSavings) ASC "
雖然我不知道我怎麼會去這或者其甚至有可能因爲我沒有訪問SELECT語句生成計算列?
如果你的意思是這個(那麼很可能):
ORDER BY (shop_product.price - shop_product.sale_price) ASC
請小心以爲這會導致全表掃描 – Orangepill
如果存在WHERE條件,則不完全正確。由於數據庫會在排序前先過濾掉不必要的行。 – invisal
你可以用這個試試。
SELECT (shop_product.price - shop_product.sale_price) as pSavings ORDER BY pSavings ASC;
沒有必要在'ORDER BY'子句中設置'as'語句。刪除選擇 – Yogus