MySQL:按两列函数排序

alg*_*der 7 php python mysql sql

我在表T中有两个整数字段A和B.

我想做点什么" SELECT * FROM T ORDER BY f(A,B) DESC"

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

什么是正确的语法?

Jon*_*ler 13

你有两个选择(至少):

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

要么:

SELECT *
  FROM T
 ORDER BY (n * A + m * B) DESC;
Run Code Online (Sandbox Code Playgroud)

一个或另一个 - 可能两者 - 应该在MySQL中为你工作.第一个应该工作,即使第二个没有.


Ole*_*Dok 5

尽量保持简单,使用以下内容:

SELECT * FROM T ORDER BY (m * A + n * B) DESC
Run Code Online (Sandbox Code Playgroud)

其中m和n是你的责任.