sql >> Database >  >> RDS >> Mysql

Kan ik een kolom gebruiken die ik later in een zoekopdracht heb geselecteerd?

Gebruik:

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

De vroegste MySQL die verwijzingen naar kolomaliassen toestaat, is de GROUP BY clausule; clausules daarna ondersteunen referenties (HAVING , ORDER BY ). De meeste andere databases bieden geen ondersteuning voor het verwijzen naar een tabelalias vóór de ORDER BY , waarvoor doorgaans een afgeleide tabel/inline-weergave moet worden gebruikt:

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

Anders moet u de logica in de WHERE-component opnieuw gebruiken:

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


  1. rails COUNT SELECTEER DISTINCT

  2. Beste databasesoftware voor ontwikkelaars (2022-editie)

  3. Hoe om te gaan met SQL-dump met Python

  4. Verschil in benodigde tijd om InnoDB/MyISAM-records in te voegen