Nej, det finns inget sätt att referera till alias, men du kan tilldela uttrycket till en variabel och sedan hänvisa till variabeln i samma select-sats.
Inuti en select-sats görs variabeltilldelningen alltid av infixoperatorn :=
. *I en SET
uttalande kan det vara antingen =
eller :=
.
t.ex.
SELECT
ord_id
, candy_id
, price
, quantity
, @exc_cost := price * quantity AS exc_cost
, @exc_cost * @tax_rate AS my_favourite_field
...
<FROM CLAUSE>
Du kan även villkorligt utföra variabeltilldelning.
t.ex.
IF(quantity > 90,
@exc_cost := price * quantity * 0.95
, @exc_cost := price * quantity) AS exc_cost
Anmärkning 1:I avsaknad av aggregerade mått och gruppera efter klausul, utvärderas variablerna enligt kolumnordning:
SELECT @t, @t+2 FROM (SELECT @t := 1) a
producerar utdata
@t @t+2
1 3