sql >> Database >  >> RDS >> Mysql

Hoe MySQL Query Alias ​​onbekende kolom te repareren? 2018

Volgens MySQL 5.7 Reference Manual ,

U moet geen alias gebruiken in de WHERE-clausule, aangezien de alias wordt gegenereerd bij het uitvoeren van de query en mogelijk niet gereed is wanneer de WHERE-voorwaarde wordt uitgevoerd. U krijgt een alias is een onbekende kolomfout omdat MySQL pas op de hoogte is van de alias nadat deze is gegenereerd als resultaat van de query. Daarom kunt u hier geen alias gebruiken in de WHERE-clausule.

(Toevoeging na bewerking van vraag)

U kunt het gewenste resultaat krijgen met de volgende vraag:

SELECT r.id, r.url, MAX(date) as `max_date`
FROM report as r
GROUP BY id, url;

Uitleg zoekopdracht:In SELECT clausule vermeldt u alleen de kolommen die u wilt weergeven, de MAX() functie zal de maximale waarden zelf al selecteren (u hebt dus geen WHERE-component nodig), en de GROUP BY-component vertelt het resultaat om alle resultaten te groeperen op basis van id en dan url .




  1. Hoe een string te splitsen met scheidingsteken char met T-SQL?

  2. Replicatiefailover voor MySQL en MariaDB beheren met pre- of post-failoverscripts

  3. Hoe records verticaal te tonen in de mysql-opdrachtregel?

  4. Verwijder duplicaten uit Count() Resultaten in SQLite