Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    6

    [MYSQL] raggruppare campi senza il php, solo con la query

    Ciao,
    ho una tabella così composta (semplifico):
    id,artista,genere

    1,the doors,rock
    2,nirvana,grunge
    3,iron maiden,heavy metal
    4,soundgarden,grunge
    5,metallica,rock
    6,ligabue,italiana
    7,deap purple,heavy metal
    ....
    ...
    .....
    999,vasco rossi,italiana

    Tramite una query, vorrei che apparissero tutti i risultati ordinati per genere. Ad esempio prima tutti quelli che fanno rock, poi tutti quelli che fanno grunge etc:

    2,nirvana,grunge
    4,soundgarden,grunge
    1,the doors,rock
    5,metallica,rock
    7,deap purple,heavy metal
    3,iron maiden,heavy metal
    ......
    .....
    999,vasco rossi,italiana
    6,ligabue,italiana

    Vorrei anche avere la possibilità di ordinare i generi come voglio, non in ordine alfabetico.

    è da questa mattina che ci provo ma niente...
    Qualcuno riesce ad aiutarmi?
    Grazie

  2. #2
    smannetta con l'order by
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    l'order by non basta, serve anche il group by


    ps: deep purple metal e i metallica rock?


    edit

    Una cosa del genere

    codice:
    SELECT 
        COUNT(ARTISTA) AS NUM_ARTISTI, 
        GENERE 
    FROM MUSICA
    GROUP BY GENERE
    ORDER BY NUM_ARTISTI DESC
    Per l'ordinamento personalizzato non saprei però.

    edit 2

    scherzavo, ho letto male la richiesta
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    6
    Originariamente inviato da Alex'87
    l'order by non basta, serve anche il group by


    ps: deep purple metal e i metallica rock?
    l'ho scritto a caso e veloce per far capire, il DB che uso non centra niente con la musica.

    Sto smanettando con group by e order by, ma senza successo

  5. #5
    Originariamente inviato da Alex'87
    l'order by non basta, serve anche il group by
    perche'?

    con l'order by perderebbe dati... ad esempio se raggruppa per "rock" cosa prende del resto? il FIRST? e perde gli altri e cosi via
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da bomberdini
    perche'?

    con l'order by perderebbe dati... ad esempio se raggruppa per "rock" cosa prende del resto? il FIRST? e perde gli altri e cosi via
    Oddio ho letto male io, pensavo volesse fare un altro tipo di raggruppamento, mea culpa!
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Originariamente inviato da Alex'87
    Oddio ho letto male io, pensavo volesse fare un altro tipo di raggruppamento, mea culpa!
    pero' concordo con te che sull ordinamento personalizzato non si sa...

    E credo non sia concepito un meccanismo del genere in mysql... Mi sa che puoi solo ottenerlo scrivendo qualche riga di codice in php... direttamente sql non puoi...
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Se non vuole farlo lato PHP potrebbe fare una Stored Procedure e definire lì come ordinare
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  9. #9
    si, certamente si.

    Ma direttamente da query non credo potra farlo
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    6
    Allora, la query attuale e che funziona è questa:

    codice:
    SELECT sl_address, sl_store, sl_city, sl_state, sl_zip, sl_latitude, sl_longitude, sl_description, sl_url, sl_hours, sl_phone, sl_picturesURLBasePath, sl_picturesURL, sl_fax, sl_chiusure, sl_type, sl_email, sl_hasEquipmentWithdrawalExcluded, ( 6371.392896 * acos( cos( radians('45.4654542') ) * cos( radians( sl_latitude ) ) * cos( radians( sl_longitude ) - radians('9.186516') ) + sin( radians('45.4654542') ) * sin( radians( sl_latitude ) ) ) ) AS sl_distance FROM wp_store_locator HAVING sl_distance < '3' ORDER BY sl_distance LIMIT 1300
    In pratica, vorrei che modificando questa query, i risultati mi appaiano raggruppati per sl_type

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.