Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kann ich eine Spalte, die ich ausgewählt habe, später in einer Abfrage verwenden?

Verwendung:

SELECT `id`,
       `hits` + `other_hits` AS `total_hits`
  FROM `something`
HAVING `total_hits` > 30

Das früheste MySQL, das Verweise auf Spaltenaliase zulässt, ist GROUP BY Klausel; Klauseln danach unterstützen Referenzen (HAVING , ORDER BY ). Die meisten anderen Datenbanken unterstützen keinen Verweis auf einen Tabellenalias vor dem ORDER BY , was normalerweise die Verwendung einer abgeleiteten Tabellen-/Inline-Ansicht erfordert:

SELECT t.id, t.total_hits
  FROM (SELECT `id`,
               `hits` + `other_hits` AS `total_hits`
          FROM `something`) t
 WHERE t.total_hits > 30

Andernfalls müssen Sie die Logik in der WHERE-Klausel wiederverwenden:

SELECT `id`,
       `hits` + `other_hits` AS `total_hits`
  FROM `something`
 WHERE `hits` + `other_hits` > 30