2013-06-03 201 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;