MySQL:按两列函数排序


MySQL: Order by a function of two columns

表T中有两个整数字段A和B。

我想做一些类似"SELECT * FROM T ORDER BY f(A,B) DESC"的事情

其中CCD_ 2是a和B的线性组合。。。即f(A,B) = mA + nB,其中m和n是数字。

什么是正确的语法?

您至少有两个选项:

SELECT (n * A + m * B) AS C, *
  FROM T
 ORDER BY C DESC; -- or ORDER BY 1 DESC

或者:

SELECT *
  FROM T
 ORDER BY (n * A + m * B) DESC;

一个或另一个(可能两者都有)应该在MySQL中适用。即使第二个不起作用,第一个也应该起作用。

尽量保持简单,使用以下方法:

SELECT * FROM T ORDER BY (m * A + n * B) DESC

其中m和n由您负责。