Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Query LIMIT 0 , 100 ORDER BY id ASC

    Ho una tabella con più di 100 valori.
    Voglio selezionare gli ultimi cento, ordinati dal più piccolo al più grande.
    Purtroppo però se impongo il LIMIT prima dell'order by mi dà errore, ma se lo metto dopo mi restituisce i prime cento valori, invece degli ultimi...

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    codice:
    select * from (
    select * from tabella order by id desc limit 100 ) 
    as tab order by id

  3. #3
    Oh grazie
    Non sapevo si potessero fare query con select annidati!

  4. #4
    Uppando il sito online questa query mi restituisce un Syntax error!
    Ci sono alternative?

  5. #5
    Ho provato anche con:
    Codice PHP:
     (
    SELECT *
    FROM scritte
    ORDER BY id DESC
    LIMIT 3
    )
    ORDER BY id ASC 
    Ma mi restituisce le righe per ordine decrescente!
    La versione di mysql è 4.0.27

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da ale152
    La versione di mysql è 4.0.27
    L'errore è dovuto al fatto che le query annidate sono disponibili a partire dalla versione 4.1.
    Le alternative sono due. O esegui solo la query in ordine decrescente e poi tramite php riordini i record come vuoi, oppure ricorri a una tabella temporanea e poi ordini quella

    codice:
    create temporary table if not exists temp
    select * from tabella order by id desc limit 100
    e poi ordini i record per id crescente

    select * from temp order by id

  7. #7
    Oh mio Dio!
    Vada per php, senz'altro

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.