Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Posso usar uma coluna que selecionei posteriormente em uma consulta?


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

O MySQL mais antigo que permite referências a aliases de coluna é o GROUP BY cláusula; cláusulas após essas referências de suporte (HAVING , ORDER BY ). A maioria dos outros bancos de dados não suporta a referência de um alias de tabela antes do ORDER BY , que normalmente requer o uso de uma tabela derivada/exibição em linha:
SELECT t.id, t.total_hits
  FROM (SELECT `id`,
               `hits` + `other_hits` AS `total_hits`
          FROM `something`) t
 WHERE t.total_hits > 30

Caso contrário, você deve reutilizar a lógica na cláusula WHERE:
SELECT `id`,
       `hits` + `other_hits` AS `total_hits`
  FROM `something`
 WHERE `hits` + `other_hits` > 30