MySQL按后求和排序

MySQL按后求和排序,mysql,sql,sum,sql-order-by,Mysql,Sql,Sum,Sql Order By,对于我的一个问题,我已经得出以下结论: SELECT Event_id, SUM(Money) AS 'Total Money' FROM prize GROUP BY Event_id ORDER BY 'Total Money' DESC; 但是,它不是按总金额排序的。如果我省略“”标记并调用Total_Money列,它可以正常工作: SELECT Event_id, SUM(Money) AS Total_Money FROM prize GROUP BY Event_id ORDER

对于我的一个问题,我已经得出以下结论:

SELECT Event_id, SUM(Money) AS 'Total Money'
FROM prize
GROUP BY Event_id
ORDER BY 'Total Money' DESC;
但是,它不是按总金额排序的。如果我省略“”标记并调用Total_Money列,它可以正常工作:

SELECT Event_id, SUM(Money) AS Total_Money
FROM prize
GROUP BY Event_id
ORDER BY Total_Money DESC
为什么会这样? 有没有一种方法可以调用列Total Money并按我想要的方式排序

SELECT Event_id, SUM(Money) AS `Total Money`
FROM prize
GROUP BY Event_id
ORDER BY `Total Money` DESC;
按“总金额”排序基本上是指按某个字符串向MySQL排序。当你把任何东西放在引号中时,你就创建了一个字符串。创建别名时,处理以某些保留字命名的列名(例如,
user
)-使用反勾号:

`user`

单引号定义了一个字符串值,因此在order by中,您不是说
order by this column
而是说
order by字符串“Total Money”
,这当然不起作用

如果你真的想用空格,你可以用倒勾代替单引号,比如

ORDER BY `Total Money`

当您编写
选择Event_id,SUM(Money)AS Total Money
时,您给了一个别名Total Money to SUM(Money)
如果你用引号写总金额,那么你将其作为字符串,这是错误的。

你使用引号,不要使用引号。使用“character”谢谢klennepette,不知怎的,我在学习中错过了这一点。