Visualizzare elementi secondo un ordine preciso in una query Mysql – ORDER BY FIND_IN_SET

Ciao,
ultimamente mi è capitato di voler effettuare una query in mysql su un subset definito di elementi (ad esempio: where id in (‘id1′,’id2’, …., ecc)). Tuttavia, oltre a limitare il numero di risultati avevo anche l’esigenz di ordinare gli stessi secondo un ordine ben preciso ( vorrei estrarre prima id2, poi id1, poi id9 e successivamente id4 ).
Per venire a capo di questo problema accorre in mio aiuto l’utilissima funziona “FIND_IN_SET”, che permette proprio di ottenere quello che mi serve, e cioè ordinare i risultati in base ad una specifica colonna e secondo un ordine che posso definire in maniera esplicita.
Di seguito un esempio:

SELECT * FROM `tabella` WHERE id in( ’34’,’39’,’32’,’37’,’43’,’35’,’36’,’50’,’42’,’31’,’33’,’40’,’38’ ) ORDER BY FIND_IN_SET( id, ‘34,39,32,37,43,35,36,50,42,31,33,40,38’ )

il risultato della query precedente presenterà i record ordinati per ‘id’ in base a quanto definito nella sezione:
ORDER BY FIND_IN_SET( id, ‘34,39,32,37,43,35,36,50,42,31,33,40,38’ )

Ciaoooo

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

wp-puzzle.com logo