Visualizzazione dei risultati da 1 a 8 su 8

Discussione: ordinamento in tabella

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    323

    ordinamento in tabella

    Salve a tutti, io ho una tabella prodotti e una colonna contenente i seguenti dati:

    MN05-0102
    MI07-0100
    MI07-0101
    MN05-0101
    MA05-0100

    Se io ordino questa colonna ottengo i seguente risultato:
    (SELECT identificativo FROM table1 ORDER BY identificativo ASC )
    MA05-0100
    MI07-0100
    MI07-0101
    MN05-0101
    MN05-0102

    io invece vorrei ottenere:
    MA05-0100
    MN05-0101
    MN05-0102
    MI07-0100
    MI07-0101

    grazie a tutti per l'attenzione, se qlc con é chiaro mi faccia sapere
    (05 = anno in questo caso 2005)
    Nella tabella la colonna é salvata come varchar


  2. #2
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    mmh, non credo si possa fare, teoricamente ha ragione lui:

    MA05-0100
    MI07-0100
    MI07-0101
    MN05-0101
    MN05-0102

    è ordinato alla perfezione alfabericamente..non hai altri elementi per impostare l'ordinamento in base all'anno.

    se vuoi ordinarle per anno, dovresti inserire una nuova colonna contenente l'anno, e la query sarebbe
    SELECT identificativo FROM table1 ORDER BY anno ASC, identificativo ASC

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    323
    grazie per l'aiuto

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    prova così
    codice:
    SELECT identificativo FROM table1 ORDER BY
    substring(identificativo,3,2),substring(identificativo,1,2),substring(identificativo,6,4)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    323
    grazie a tutti e due per l'aiuto, veramente.

    Grazie

    Come faccio in PHP per estrapolare l'ultimo dato memorizzato ordinato nella query?

    grazie per l'aiuto

  6. #6
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Se ti serve l'ultima riga selezionata nella query ti conviene usare DESC al posto di ASC alla fine della query, così li ordina al contrario
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    323
    il codice come sarebbe?

    qualcosa di simile a questo?

    SELECT identificativo FROM table1
    WHERE identificativo IN (
    SELECT identificativo
    FROM table1
    ORDER BY substring(identificativo,3,2),substring(identifica tivo,1,2),substring(identificativo,6,4) DESC
    )
    LIMIT 1


    Se faccio cosi' come risultato mi da' MN05-0102 e non MI07-0101. Cosa sbaglio nella query

    grazie per l'attenzione

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    codice:
    SELECT identificativo FROM table1 ORDER BY
    substring(identificativo,3,2) desc,substring(identificativo,1,2) desc,
    substring(identificativo,6,4) desc
    limit 1

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 © 2024 vBulletin Solutions, Inc. All rights reserved.