Вот запрос я пытаюсь написать:Можете ли вы назначить переменную в SELECT, а затем использовать ее позже в том же SELECT?
SELECT I.*,
IF(MAX(B.`amount`) != 0, MAX(B.`amount`), I.`start`) AS `current_bid`,
`current_bid` * 1.05 AS `min_bid`
...
Я получаю ошибку «Неизвестный столбец" CURRENT_BID». Я предполагаю, что это потому, что я только что создал текущий столбец в строке раньше. Есть ли способ заставить этот запрос работать так, как я этого хочу? Я предполагаю, что один из способов заставить его работать было бы использовать два, если заявления, которые говорят в основном то же самое, как это:
SELECT I.*,
IF(MAX(B.`amount`) != 0, MAX(B.`amount`), I.`start`) AS `current_bid`,
IF(MAX(B.`amount`) != 0, MAX(B.`amount`) * 1.05, I.`start` * 1.05) AS `min_id`
...
Но это кажется ужасно неэффективным.
Кроме того, есть ли способ, которым я могу назначить current
без вычисления MAX(B.amount)
дважды?
Вы избили меня ... Я думаю, что это единственный способ. Кажется странным, однако, почему SQL не имеет встроенного способа для псевдонимов столбца. – McGarnagle