Peter Thomassen: MySQL: Zugriff auf Aliase

Hallo liebes Forum,

ich würde gerne eine Query à la

SELECT (5 - 2) AS alias, (alias + 5) AS alias2

ausführen. Es wird also einem berechneten Feld (5) ein Alias zugeordnet, auf den in einer weiteren Berechnung wieder zugegriffen werden soll. Allerdings beschwert sich MySQL 4.1 (darauf bin ich angewiesen) darüber, dass die Spalte "alias" nicht definiert sei, wenn ich in der Klammer darauf zugreifen möchte.

Lässt sich so etwas realisieren, ohne den Wert von "alias" nochmal zu berechnen, und ohne Stored Procedures zu verwenden (MySQL 4.1 kann das ja nicht)? Meine Statements werden sonst so unübersichtlich ...

Danke!
Peter

  1. echo $begrueszung;

    SELECT (5 - 2) AS alias, (alias + 5) AS alias2

    Der Alias für Spaltennamen wird erst zum Schluss der Spalte zugewiesen. Damit weiterrechnen kann man nicht.

    Mit MySQL 4.1 gehen aber Subquerys und da kannst du das so tun [1]:

    SELECT b.a alias, b.a + 5 alias2 FROM ( SELECT 5 - 2 a) b

    echo "$verabschiedung $name";

    [1] auch wenn der Forums-Syntax-Hochlichter das 'alias' nicht als solchen erkennt...

    1. Hallo,

      danke für deine Antwort!

      SELECT b.a alias, b.a + 5 alias2 FROM ( SELECT 5 - 2 a) b

      Hm, ich habe aber schon eine FROM-Angabe, und eigentlich hab ich keine Lust, unübersichtliche Joins zu basteln. Außerdem finde ich die Notationsreihenfolge irgendwie nicht intuitiv. Die Idee ist aber trotzdem sehr elegant, danke!

      Ich will Stored Procedures :-) Naja, bis MySQL 5.0 wird's wohl noch ohne gehen.

      Bye,
      Peter