Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    ordinamento risultati un po' particolare

    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?

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Bisogna specificare il db come da regolamento.

  3. #3
    Scusate, database mysql.

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    select * from tabella order by if(campo = x,1,0),title

  5. #5
    mmm ti ringrazio per la risposta, ma non ho capito molto.

    La mia query è questa:

    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
    e mi serve fare in modo che tutti i casi in cui b.title = 'Altro' finiscano in fondo alla selezione.

    Come funziona?

    Grazie ancora.

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    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.

  7. #7
    Ho scritto:
    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
    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.

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    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.

  9. #9
    Ok, grazie a te ho risolto:
    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),b.title, titolo
    Molte molte grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.