Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    79

    [MySQL] Ordinamento per numero record

    Salve,
    ho una tabella strutturata in questo modo:

    TAB1:
    id | name

    come vedete non esiste un campo dove viene indicata la data di creazione del record, dovendo pero' recuperare tramite una select gli id devo ordinarli dall'ultimo al primo. Gli Id inoltre non rispettano alcun ordine.
    E' possibile effettuare un ordinamento in base al numero di riga (record) nella tabella?



    Thanks

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    select * from tabella order by id desc

    ?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    79
    Originariamente inviato da nicola75ss
    select * from tabella order by id desc

    ?
    In questo modo mi fa un ordinamento in base all'id, pero' non essendoci una ratio nella loro generazione, non riesco ad ottenere l'ordinamento corretto.

    A me servirebbe una cosa del genere:

    SELECT id, name FROM TAB1 ORDER BY {row_number} DESC;

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922

    Re: [MySQL] Ordinamento per numero record

    Originariamente inviato da Haran78
    Gli Id inoltre non rispettano alcun ordine.
    Allora la vedo grigia.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    79
    Questa sembrerebbe funzionare:

    set @i = 0;
    select id, @i:=@i+1 as row_number FROM TAB1 ORDER BY row_number DESC;

  6. #6
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Temo non sia molto diverso da "select * from tabella" ...

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da Haran78
    Questa sembrerebbe funzionare:

    set @i = 0;
    select id, @i:=@i+1 as row_number FROM TAB1 ORDER BY row_number DESC;
    Mah, sarà. Non capisco in base a quale criterio tu possa ordinare emulando la funzione row_number ma se dici di aver risolto meglio così.

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    79
    Originariamente inviato da comas17
    Temo non sia molto diverso da "select * from tabella" ...
    Cosi' funziona, i risultati sono ordinati in base al numero della riga.

    Ora pero' ho bisogno di fare delle JOIN e salta tutto. C'e' un modo per forzare il conteggio solo su TAB1?

  9. #9
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Originariamente inviato da Haran78
    Cosi' funziona, i risultati sono ordinati in base al numero della riga.
    Ma l'ordine te lo sei "costruito" tu semplicemente scorrendo la tabella ... tanto come una normale select senza alcun order by ...
    Contento tu...

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    79
    Originariamente inviato da comas17
    Ma l'ordine te lo sei "costruito" tu semplicemente scorrendo la tabella ... tanto come una normale select senza alcun order by ...
    Contento tu...
    Beh, non esattamente. In questo modo posso ordinare per ordine crescente o decrescente. Con una select normale non puoi farlo (o sbaglio?).

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.