2014-09-20 47 views
-1

的結果我有一個mysql SELECT如下mysql命令通過SUM

SELECT SUM(s.cuts) as scuts, SUM(s.top) as swins, SUM(s.top_10) as stop_10, 

,我想用資金來訂購的結果:

ORDER BY ((swins*10)+(stop_10*4)+scuts) DESC LIMIT 10 

這可能嗎?

我已經搜索了其他帖子,但找不到答案。

+3

你試過了嗎? *可以在查詢選擇列表中使用別名來爲列指定不同的名稱。您可以在GROUP BY,ORDER BY或HAVING子句中使用別名來引用該列:*(http://dev.mysql.com/doc/refman/5.6/en/problems-with-alias.html) – VMai 2014-09-20 18:42:10

+0

排序是通過選擇的結果完成的,而不是通過ORDER BY計算的某個值。 – 2014-09-20 18:42:44

+1

@MykolaEvpak:當然你可以通過計算來訂購。 – 2014-09-20 18:45:49

回答

0

您不能在SORT BY表達式中使用非別名的SELECT別名。 (這只是一個SQL限制,與名稱範圍相關,儘管可以允許更明確的情況。)

但是,您可以在您提供的代碼周圍放置SELECT & SORT BY。或者對於某些表達式,您可以按照評論中的建議使用HAVING。