Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765

    [MYSQL] Ordinamento tabella a più campi

    salve

    data la seguente tabella io dovrei ordinarla in modo che se seleziono ad esempio l'ID = 3 mi ordina per primo quello e poi man mano gli altri tenendo conto della posizione e poi del padre..

    non so se mi son spiegato tanto bene..

    il campo padre si riferisce che è 'figlia' di quel ID

    codice:
    ID	NOME		POSIZIONE		PADRE
    
    1	Jazz		1			0
    2	Rock		3			0
    3	Dance	2			1
    4	Funk		2			1
    5	House	1			0
    6	Classica	1			0
    7	Comm		3			1
    io finora ho buttato giù questo (impostando 1 come esempio e ammesso che nel mio database ci sono più record)

    Codice PHP:
    SELECT FROM sezioni_canzoni ORDER BY padre >= 1 DESCposizione ASC 
    ma mi ordina quelli con padre 1 in modo corretto e tutti gli altri per posizione senza tener conto del campo padre..

    come posso risolvere?

  2. #2
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    up

  3. #3
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    uppo nella speranza di una soluzione

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    209
    ti conviene fare due query, in una selezioni la riga attuale, nell'altra selezioni LE ALTRE righe ordinate come vuoi tu, così:

    SELECT * FROM sezioni_canzoni WHERE ID<>'mioid' ORDER BY posizione ASC, padre DESC

    oppure fai una query sola unendo le due con UNION

    SELECT * FROM sezioni_canzoni WHERE ID='mioid'
    UNION
    SELECT * FROM sezioni_canzoni WHERE ID<>'mioid' ORDER BY posizione ASC, padre DESC

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.