Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Query SQL...

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    3

    Query SQL...

    E' tutta la mattina che ci provo..ma niente da fare!
    Allora ho pensato a voi..che di sicuro ne sapete una cifra piu di me sull'SQL!
    Devo fare una query che ritornare l'i-esima entry in una tabella ordinata.
    Allora, si potrebbero usare due query, la prima prende la tabella e la ordina..la seconda, prende la tabella risultante dalla prima, la ordina in modo inverso e fa il limit ad uno.
    (un giro strano solo per riuscire ad estrarre l'iesimo valore!)

    Alla fine si tratterebbe di montare le due query:

    1 - SELECT * FROM rank ORDER BY score DESC LIMIT 3

    2 - SELECT * FROM rank ORDER BY score ASC LIMIT 1

    Poi...possibile che non ci sia un modo piu semplice per fare cio??

    P.S..il server SQL è MySQL!

    Grazie mille Frenz

  2. #2
    Concettualmente errato.

    Fai due query e basta. Perche' la seconda prende dalla prima? La tabella non viene alterata, viene semplicemente ordinato l'output a seconda della tua richiesta. Cosi' per il numero di record da estrarre.


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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    3
    Perche la query è fatta via ADO da un client remoto...e se volessi ottenere la 5000esima entry nella "classifica" dovrei scaricare 5000 entry e selezionare poi l'ultima...in locale!
    Con le due query di prima facevo lavorare solo il server, trasferendo solo l'entry che mi interessa essendo essa la prima in ordine inverso la le i-esime entry in ordine...mmhh...che giro di parole.

    Voglio la terza row...
    Dopo la Prima Query
    0
    1
    2
    3

    Dopo la seconda
    3
    ( 2 1 0 ) sono eliminate da LIMIT

  4. #4
    Diciamo che hai un concetto abbastanza personale sulle query.

    Se il 50000° record corrisponde all'ultimo ID, basta fare la query che hai detto:

    SELECT * FROM TABELLA ORDER BY ID DESC LIMIT 1.

    ti estrae il record con l'ID piu alto. se vuoi il terzultimo:

    SELECT * FROM TABELLA ORDER BY ID DESC LIMIT 3,1.



    Il resto mi sfugge, oppure non capisco la domanda.

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

  5. #5

    Re: Query SQL...

    Originariamente inviato da frenz79
    Devo fare una query che ritornare l'i-esima entry in una tabella ordinata.
    SELECT * FROM rank ORDER BY score DESC LIMIT i-esimo,1

    no ?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    3
    Wow..

    SELECT * FROM rank ORDER BY score DESC LIMIT (iesimo-1),1

    ( -1 perchè il primo è alla posizione 0)

    Mi sa che avevte impiegato piu tempo per leggere il post che per trovare una soluzione...

    Thanks..byez

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.