MySQL запрос, повторно использовать имена столбцов в запросе - PullRequest
1 голос
/ 07 апреля 2009

У меня есть запрос MySQL, что-то вроде этого:

SELECT users*100 as totalusers, totalusers*90 AS totalsalerys FROM table

Как видите, я хочу повторно использовать totalusers при расчете totalsalerys, поэтому мне не придется снова писать тот же код. Похоже, что это не работает в MySQL, есть ли другой простой способ сделать это?

Мой запрос является лишь примером, замените *100 и *90 на очень длинную формулу, и вы можете увидеть, что я имею в виду

Ответы [ 2 ]

2 голосов
/ 07 апреля 2009
SELECT  (@r := users * 100) as totalusers,
        @r * 90 AS totalsalerys
FROM    table

Вы также можете использовать подзапрос в качестве @Tom Ritter совета, но он не подходит для ORDER BY ... LIMIT ... предложения.

В MySQL все результаты внутреннего подзапроса будут извлечены за до применения каких-либо фильтров во внешнем подзапросе.

1 голос
/ 07 апреля 2009

Полагаю, вам придется скопировать / вставить формулу или использовать подзапрос. Ниже будет работать в T-SQL, но я думаю, что это будет работать и в MySQL, так как это довольно просто.

 SELECT 
     x.totalusers, x.totalusers*90 AS totalsalerys 
 FROM (
      SELECT users*100 as totalusers FROM table
 ) x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...