salve, vorrei prendere dati da una tabella ordinando i risultati per title, ma mettendo per ultimi quelli che abbiano un certo campo uguale ad un numero esatto, qualcuno sa aiutarmi?
salve, vorrei prendere dati da una tabella ordinando i risultati per title, ma mettendo per ultimi quelli che abbiano un certo campo uguale ad un numero esatto, qualcuno sa aiutarmi?
Bisogna specificare il db come da regolamento.![]()
Scusate, database mysql.
select * from tabella order by if(campo = x,1,0),title
mmm ti ringrazio per la risposta, ma non ho capito molto.
La mia query è questa:
e mi serve fare in modo che tutti i casi in cui b.title = 'Altro' finiscano in fondo alla selezione.codice:select a.uid as indco, a.titolo as titolo, a.showYC as showYC, a.breve as breve, a.categoria as categoria, a.sottocategoria as sottocategoria, a.hidden as nascosto , a.scadenza, b.uid as indSc, b.title from convenzioni2008 as a join convenzioniSottoCat as b on a.sottocategoria = CONCAT(',',b.uid,',') where a.hidden =0 order by b.title, titolo
Come funziona?
Grazie ancora.
order by if (b.title = 'Altro',1,0),titolo
Quel concat nel join fa supporre che la tabella non sia normalizzata e che abbia più valori nello stesso campo.
Ho scritto:
e in effetti mi ordina prima tutti i risultati e poi quelli con b.title = 'Altro', però io devo ordinare tutti i risultati che non siano 'Altro' secondo il parametro titolo. Quindi, per usare due criteri di ordinamento, di cui uno sia il tuo, come devo scriverlo? ho fatto un paio di prove ma mi dà sempre problemi di sintassi.codice:select a.uid as indco, a.titolo as titolo, a.showYC as showYC, a.breve as breve, a.categoria as categoria, a.sottocategoria as sottocategoria, a.hidden as nascosto , a.scadenza, b.uid as indSc, b.title from convenzioni2008 as a join convenzioniSottoCat as b on a.sottocategoria = CONCAT(',',b.uid,',') where a.hidden =0 order by if (b.title = 'Altro',1,0),titolo
La sintassi dell'ordinamento è quella. Con l'if specifichi la "priorità", poi indichi gli altri campi, titolo o quelli che sono, su cui ordinare a parità di 1 o di 0.
Ok, grazie a te ho risolto:
Molte molte graziecodice:select a.uid as indco, a.titolo as titolo, a.showYC as showYC, a.breve as breve, a.categoria as categoria, a.sottocategoria as sottocategoria, a.hidden as nascosto , a.scadenza, b.uid as indSc, b.title from convenzioni2008 as a join convenzioniSottoCat as b on a.sottocategoria = CONCAT(',',b.uid,',') where a.hidden =0 order by if (b.title = 'Altro',1,0),b.title, titolo![]()