Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    321

    [MYSQL] ordine in query mysql

    Ciao.

    ho una tabella con vari campi tra cui il campo testo "stato"
    nel mio campo stato ci sono vari valori testuali che io non posso modificare.

    Io dovrei mettere in ordine seguendo questo criterio :
    prima tutti i recordo con
    ORC
    poi
    PCK
    poi
    BOL
    poi
    FTC

    devo usare ORDER BY ?
    grazie per l'aiuto

    esempio di campi/tabella

    CAMPO
    -----
    BOL
    BOL
    BOL
    PCK
    BOL
    FTC
    FTC
    ORC
    PCK
    ORC
    ORC
    ::Steve::

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Che io sappia non puoi ordinare un campo con dei criteri personalizzati come vorresti fare tu.

    Al limite se è solo una questione di visualizzazione ti puoi fare una query in cui recuperi tutti i record con stato orc,una query per tutti i record pck eccetera e poi li visualizzi.

  3. #3
    Prova con UNION con in WHERE la scelta del campo "stato", oppure con CASE stato when ORC THEN 1 ... ecc. e poi ordini per il numerello 1 2 ecc...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ciao piero. Stavo cercando di mettere in pratica quel che hai spiegato ma sto sbagliando qualcosa.

    Allora,questa è la query che faccio io (ho alcune tabelle da sbarco che stravolgo sempre per fare gli esperimenti )

    select nome,case
    when qualifica = "orc" then '1'
    when qualifica = "pck" then '2'
    when qualifica = "bol" then '3'
    when qualifica = "ftc" then '4'
    end
    as gruppi
    from studente order by gruppi;

    // il campo nome l'ho aggiunto nella query per avere un riscontro visivo di ciò che stavo facendo.

    così funziona e mi mette i nomi ordinati in base a orc,pck ecc ovviamente scrivendomi nel campo gruppi i numeri.

    Se invece scrivo then 'orc',then 'pck' allora mi ordina i nominativi ma in ordine crescente di qualifica e la query diventa inutile.
    E' possibile visualizzare nella colonna gruppi i vari orc,bol anzichè i numeri? Ciao e grazie.

  5. #5
    select nome,case, qualifica
    when qualifica = "orc" then '1'
    when qualifica = "pck" then '2'
    when qualifica = "bol" then '3'
    when qualifica = "ftc" then '4'
    end
    as gruppi
    from studente order by gruppi;


    ??? :master:
    così che fa? (io non lo so eh )

    certo non si può dire che tu non sia uno studente che non si applica... fai le prove anche per iproblemi altrui...

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da }gu|do[z]{®©
    select nome,case, qualifica
    when qualifica = "orc" then '1'
    when qualifica = "pck" then '2'
    when qualifica = "bol" then '3'
    when qualifica = "ftc" then '4'
    end
    as gruppi
    from studente order by gruppi;


    ??? :master:
    così che fa? (io non lo so eh )

    certo non si può dire che tu non sia uno studente che non si applica... fai le prove anche per iproblemi altrui...
    Sono un bravo scolaretto.
    Il fatto è che mi piace molto l'sql e vorrei impararlo meglio e allora "approfitto" della disponibilità di piero.

  7. #7
    Se devi fare quell'arzigogolo del CASE e proprio solo per dare un ordine "diverso" da quello alfabetico.
    basta estarre "qualifica" o "stato" che sia. Il numerello serve solo per l'ORDER BY....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    codice:
    select *, 
    case stato
    when "orc" then 1 
    when "pck" then 2 
    when "bol" then 3 
    else 4 
    end 
    as gruppi 
    from studente order by gruppi
    anche cosi'....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ho capito. Allora non arzigogoliamo. Grazie.

    [edit]
    Grazie anche per la query aggiuntiva. Non conoscevo quel tipo di sintassi. Non sono molto pratico del case.
    [/edit]

  10. #10
    Originariamente inviato da piero.mac
    Se devi fare quell'arzigogolo del CASE e proprio solo per dare un ordine "diverso" da quello alfabetico.
    basta estarre "qualifica" o "stato" che sia. Il numerello serve solo per l'ORDER BY....
    quindi era giusta la mia? (ho solo aggiunto il cmapo a quelli da selezionare )

    Mai usati condizionali nelle query

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.