Mysql
 sql >> Base de données >  >> RDS >> Mysql

Puis-je utiliser une colonne que j'ai sélectionnée ultérieurement dans une requête ?

Utiliser :

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

Le premier MySQL autorise les références aux alias de colonne est le GROUP BY clause; les clauses après cela prennent en charge les références (HAVING , ORDER BY ). La plupart des autres bases de données ne prennent pas en charge le référencement d'un alias de table avant le ORDER BY , ce qui nécessite généralement l'utilisation d'une table dérivée/vue intégrée :

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

Sinon, vous devez réutiliser la logique dans la clause WHERE :

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