richiedi subito informazioni chiamando al numero +39 080 4837098

MySQL - è possibile utilizzare un alias nella clausola where?

5 set 2014

Per esigenze di lavoro è inevitabile l'uso degli alias MySQL, a volte oltre agli alias nasce la necessità di utilizzare l'alias appena creato nella clausa where, cosa di per sè NON possibile per come è strutturato MySQL, oggi vi mostrerò come ovviare a questo problema in modo rapido e semplice.

Prendiamo ad esempio una query semplice che fa uso degli alias:

 select date_format(data_ins, '%d-%m') as data_ev
 from news where calendario = 1 order by data_ev

estraggo cioè solo il giorno e il mese da una tabella dove il campo calendario è uguale a 1 e ordino tutto per l'alias. Volendo ora estrarre soltanto i dati di un determinato giorno/mese, verrebbe da pensare, aggiungo un and alla clausola where con data_ev = 'giorno-mese', a questo punto però avrete un errore MySQL.

Per ovviare a questo incoveniente ci viene in aiuto l'istruzione HAVING, da far seguire subito dopo il WHERE, la nostra query quindi diventerebbe:

 select date_format(data_ins, '%d-%m') as data_ev
 from news where calendario = 1 having data_ev = '04-09' order by data_ev

così facendo abbiamo creato un alias con giorno e mese e tramite l'HAVING ho ristretto il campo di ricerca senza problemi wink

Alla prossima.


Categoria: MySQL
Autore: Francesco

Lascia un commento

Nome: (obbligatorio)


Email: (obbligatoria - non sarà pubblica)


Sito:
Commento: (obbligatorio)

Invia commento


ATTENZIONE: il tuo commento verrà prima moderato e se ritenuto idoneo sarà pubblicato