dedlfix: MySQL Alias

Beitrag lesen

echo $begrüßung;

bei mir passiert es immer wieder, dass ich einen Alias nicht in
einer Bedingung verwednen darf. Anderseits habe ich aber das Gefühl,
dass es an anderen Stellen geht.
SELECT
content\_online\_new.link\_title AS test
FROM content\_online\_new
WHERE test = 'Unsere Leistungen'

Zuerst wird von einem Statement die FROM-Klausel (inklusive Joins) ausgewertet, um die zu verarbeitenden Tabellen zu ermitteln. Dann werden die Datensätze mit WHERE gefiltert und gegebenenfalls GROUPiert. Erst jetzt können die unter SELECT angegebenen Felder ausgewertet werden, weswegen auch erst jetzt Alias-Namen zur Verfügung stehen. Die können dann in HAVING- und ORDER-Klauseln verwendet werden.
Wenn du jetzt aber denkst: "Gut, nehm ich halt HAVING und lass WHERE weg", dann geht das vielleicht in MySQL gut, aber nicht unbedingt in anderen DBMS. HAVING hat die Aufgabe von den GROUPierten Datensätzen noch einige wegzufiltern und arbeitet deswegen einerseits (normalerweise) nur mit den unter GROUP BY angegebenen Felder oder Aggregatfunktionen zusammen, andererseits kann es auf keine Optimierungen, wie Indexe, zugreifen.

echo "$verabschiedung $name";