我正在为修改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