MySql ordinamento personalizzato dei risultati di una query

Articolo in pillole, per risolvere un problemino che mi ha visto perdere circa 2 ore per trovare una soluzione quanto mai veloce e.. banale: l’ordine personalizzato dei risultati di una query SQL.

Un aspetto molto importante lavorando con query SQL è sicuramente l’ordinamento dei risultati.

Mettiamo ad esempio di avere il menù di una pizzeria salvato all’interno di un database.

Abbiamo la tabella menu, con molti campi, tra i quali: id, nome_pizza, prezzo.

Alcune query di esempio:

  • Seleziona tutte le tuple ed ordina per nome_pizza:

SELECT * FROM menu

ORDER BY nome_pizza;

  • Seleziona tutte le tuple ed ordina per prezzo, quindi per nome_pizza:

SELECT * FROM menu

ORDER BY prezzo, nome_pizza;

Nel marketing però, spesso è necessario taroccare i risultati delle query, o meglio, è necessario avere un ordinamento personalizzato dei risultati della query. In questo caso ci viene molto comoda l’opzione FIELD di MYSQL.

Ad esempio vogliamo mostrare le pizze in ordine alfabetico, ma vogliamo che prima di tutte compaiano le nostre due pizze speciali: PizzaSEO e PizzaMarketing.

  • Seleziona tutte le tuple ed ordina per nome, mettendo però in cima le costosissime PizzaSEO e PizzaMarketing :

SELECT * FROM menu

ORDER BY FIELD(nome, ‘PizzaSEO’, ‘PizzaMarketing’);

 

Buon divertimento!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.