Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di PaoDJ
    Registrato dal
    Oct 2001
    Messaggi
    273

    [MySQL] Righe in ordine inverso di inserimento

    Ciao,

    ho bisogno di fare una cosa un po particolare: vorrei visualizzare le righe inserite in una tabella in ordine inverso rispetto a quello normale.

    Esempio:
    INSERT INTO tabella VALUES ('a');
    INSERT INTO tabella VALUES ('b');
    INSERT INTO tabella VALUES ('c');

    SELECT * FROM tabella:
    a
    b
    c

    Vorrei invece visualizzare:
    c
    b
    a

    NB: NON voglio usare la clausula ORDER BY `campo` DESC perchè la tabella su cui sto lavorando pesa 300 mega ed effettuare l'ordinamento ad ogni query significa far passare dei secondi per il completamento della query...

    Non c'è un modo specifico x farlo?

  2. #2
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    $a = array(......);
    $fine = end($a);
    while($fine) {
    echo($fine);
    $fine = prev($fine);
    }

  3. #3
    Utente di HTML.it L'avatar di PaoDJ
    Registrato dal
    Oct 2001
    Messaggi
    273
    Mi serve già la query ordinata perchè sono 2 milioni le righe della tabella, per 8 colonne... pensa tu le dimensioni di quell'array...

  4. #4
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    l'unica cosa che mi viene in mente è arsort() Questa ti va bene se i valori sono in ordine alfab.. o numerico. Essa te li inverte senza modificare gli indici.
    ciao

  5. #5
    Utente di HTML.it L'avatar di PaoDJ
    Registrato dal
    Oct 2001
    Messaggi
    273
    Il problema non è farlo con php perchè ci sono 200 metodi differenti per farlo. Il problema è che il risultato della query deve essere già quello utilizzabile...

  6. #6
    Credo che la soluzione migliore e usare l'order by.

    Ti costa qualcosa in termini di calcolo ed esecuzione della query ma sicuramente ti costa meno rispetto ad un possibile ordinamento fatto in php.

    Credo che se stabilisci che il campo su cui fai l'ordinamento è un indice riduci il tempo di calcolo.
    E' da verificare, ciao
    Vincenzo Miele

  7. #7
    Utente di HTML.it L'avatar di PaoDJ
    Registrato dal
    Oct 2001
    Messaggi
    273
    Eheh, un altro indice e quella tabella scoppia... ad ora conta quasi 8 milioni di righe, ha 2 indici (non chiavi primarie) e il campo in questione è un unix_timestamp da 10 cifre (e quindi molto pesante come indice).

    E' strano però che non ci sia soluzione a questo problema...

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.