Kort svar:
- referenser till alias i SELECT-listan eller
- Aliaserade uttryck
Den enda dokumentation jag har hittat om detta hittills har varit:https://bugs .mysql.com/bug.php?id=79549
I den länken finns följande:
[9 dec 2015 15:35] Roy Lyseng...Här är en längre bakgrund för det ursprungliga beslutet:
I motsats till referenser till alias i underfrågor i WHERE-satsen (och i GROUP BY, för den delen), finns det ingen anledning (förutom standardefterlevnad) att vi inte ska tillåta referenser till alias i SELECT-listan , eftersom de borde vara tillgängliga i samma fas av exekveringen av frågan. Men stödet i 5.6 var ganska godtyckligt:
Med tanke på detta:skapa tabell t1(a int, b int),
Alias i SELECT-listan är inte giltigt:
select a+b as c,c+1 from t1;
Men inom en underfråga är referensen till c giltig:
select a+b as c,(select c+1) from t1;
Och underfrågan måste vara efter definitionen av alias:
select (select c+1),a+b as c from t1;
Så det är lätt att säga att stöd för referenser till alias i SELECT-listan var ganska ad-hoc. Ändå kommer vi att försöka implementera den gamla lösningen igen, men utan några försök att rensa upp de uppenbara hålen i stödet för denna funktion. Men hänvisningar till alias i underfrågor i WHERE-satsen kommer inte att implementeras på nytt.
Jag letar fortfarande efter dokumentation utöver felrapporten som beskriver denna funktionalitet i standarddokumenten; men hittills ingen tur.