MySQL:按两列函数排序

时间:2012-01-08 06:43:39

标签: 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是数字。

什么是正确的语法?

2 个答案:

答案 0 :(得分:13)

您有两种选择(至少):

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中为你工作。第一个应该工作,即使第二个没有。

答案 1 :(得分:5)

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

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

其中m和n由您负责。