Mysql
 sql >> Database >  >> RDS >> Mysql

Posso utilizzare una colonna che ho selezionato successivamente in una query?

Usa:

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

Il primo MySQL che consente riferimenti agli alias di colonna è GROUP BY clausola; le clausole successive supportano i riferimenti (HAVING , ORDER BY ). La maggior parte degli altri database non supporta il riferimento a un alias di tabella prima di ORDER BY , che in genere richiede l'utilizzo di una tabella derivata/vista in linea:

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

Altrimenti, devi riutilizzare la logica nella clausola WHERE:

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