У меня есть два целых поля A и B в таблице T.
Я хочу сделать что-то вроде "SELECT * FROM T ORDER BY f(A,B) DESC"
SELECT * FROM T ORDER BY f(A,B) DESC
, где f(A,B) - линейная комбинация A и B ... т.е. f(A,B) = mA + nB, где m и n - числа.
f(A,B)
f(A,B) = mA + nB
Каков правильный синтаксис?
У вас есть два варианта (как минимум):
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 находятся под вашей ответственностью.