MYSQL按列数之和排序

问题描述 投票:11回答:5

有什么办法可以让MYSQL查询的结果按两列之和而不是单列之和排序?

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

我知道那是行不通的,但我希望它能很好地表达我想做的事情。

谢谢!

mysql sql-order-by
5个回答
27
投票

为什么不先试一下再下结论说行不通呢? 事实上,它是行得通的。


5
投票

我想你应该能够做到

SELECT *, col1+col2 as mysum ORDER BY mysum

基本上和你已经有了一样的东西。


5
投票

假设你有一个名为'学生'

enter image description here

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

SELECT Name, S1, S2, SUM(S1+S2) AS TOTAL
FROM Students
GROUP BY Name, S1, S2
ORDER BY Total;

你会得到以下结果。

enter image description here


1
投票

你写的查询应该可以正常工作,你可以用任何表达式在 ORDER BY 子句,我可以确认这在某些情况下是行不通的。


0
投票

我可以确认这在某些情况下是不工作的。NULL

Select * FROM table ORDER BY (IFNULL(col1,0)+IFNULL(col2,0)) desc
© www.soinside.com 2019 - 2024. All rights reserved.