MYSQL按列和排序

MYSQL按列和排序,mysql,sql-order-by,Mysql,Sql Order By,你知道如何按两列之和而不是一列对MYSQL查询结果进行排序吗 Select * FROM table ORDER BY (col1+col2) desc 我知道那是行不通的,但我希望它能很好地表达我想要做的事情 谢谢 为什么不在断定它不起作用之前试试呢?事实上,确实如此。您编写的查询应该可以正常工作,您可以在ORDER BY子句中使用任何表达式。我认为您应该可以这样做 SELECT *, col1+col2 as mysum ORDER BY mysum 这基本上与您已有的相同,假设您有一个

你知道如何按两列之和而不是一列对MYSQL查询结果进行排序吗

Select * FROM table ORDER BY (col1+col2) desc
我知道那是行不通的,但我希望它能很好地表达我想要做的事情


谢谢

为什么不在断定它不起作用之前试试呢?事实上,确实如此。

您编写的查询应该可以正常工作,您可以在
ORDER BY
子句中使用任何表达式。

我认为您应该可以这样做

SELECT *, col1+col2 as mysum ORDER BY mysum

这基本上与您已有的

相同,假设您有一个名为“学生”的表

现在你想知道每个学生的总分。 因此,键入以下查询

SELECT Name, S1, S2, SUM(S1+S2) AS TOTAL
FROM Students
GROUP BY Name, S1, S2
ORDER BY Total;
您将得到以下结果


我可以确认,在某些情况下,这不起作用。 检查某个值是否为
NULL

Select * FROM table ORDER BY (IFNULL(col1,0)+IFNULL(col2,0)) desc

将总和(col1+col2)存储在col3中并在其上建立索引,会使查询更快吗???@user2681045,我怀疑它会使问题中的查询更快。如果您将其更改为“
orderbycol3”
,并具有适当的索引,则可能。但这是以你的表格去规范化为代价的。他在放弃并发帖之前不知道他离成功有多近。这对我不起作用,我不认为你能对克劳塞森的命令有一个表达。你知道,我有这个问题,不太明白为什么:)奇怪,这不是默认行为,伊姆霍