2014-09-20 98 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。