MySQL: порядок по функции из двух столбцов - PullRequest
7 голосов
/ 08 января 2012

У меня есть два целых поля A и B в таблице T.

Я хочу сделать что-то вроде "SELECT * FROM T ORDER BY f(A,B) DESC"

, где f(A,B) - линейная комбинация A и B ... т.е. f(A,B) = mA + nB, где m и n - числа.

Каков правильный синтаксис?

Ответы [ 2 ]

13 голосов
/ 08 января 2012

У вас есть два варианта (как минимум):

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.Первое должно работать, даже если второе не работает.

5 голосов
/ 08 января 2012

Постарайтесь сделать это проще, используйте следующее:

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

, где m и n находятся под вашей ответственностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...