Visualizzazione dei risultati da 1 a 7 su 7

Discussione: LIMIT a intervalli

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    144

    LIMIT a intervalli

    Ciao a tutti, io vorrei fare una select con un LIMIT che mi dia come risultato il 1°, l'11°, il 21° il 31° il 41° record e così via.
    Vi ringrazio in anticipo

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Specifica il database: in mysql sevi fare piu' fatica, negli altri prova ad usare row_number() e la funzione MOD()
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    144
    E' in mysql, pensavo che si potesse fare direttamente dentro la select

  4. #4
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da Cocacola Visualizza il messaggio
    pensavo che si potesse fare direttamente dentro la select
    Certo che si puo fare, solo un pò piu faticoso

    più o meno cosi
    codice:
    SELECT 
    X.Id, 
    X.c1, 
    X.c2, 
    X.c3 
    FROM T1 AS X 
    WHERE 
    (((SELECT Count(Y.Id) FROM T1 AS Y WHERE (Y.Id < X.Id);) Mod (10))=0)
    ;
    Facci sapere
    Ultima modifica di nman; 26-05-2016 a 17:52

  5. #5
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Ho notato un errore
    Togli il PuntoVirgola della penultima riga

    ..... X.Id);) Mod ........

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    144
    Funziona alla grande!!
    L'unico problema è che se metto un ORDER BY in fondo mi mette in ordine quelli rimasti, mentre a me servirebbe prima fare l'ORDER e poi prendere il 1°, 11° etc

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova cosi.
    codice:
    SELECT `tabella`.*,@rownum:=@rownum+1 AS ROW_NUMBER, @mod := @rownum MOD 10 AS MODULO
    FROM `tabella`
    INNER JOIN (SELECT @rownum:=0) AS C ON 1=1
    HAVING MODULO = 1
    ORDER BY ROW_NUMBER
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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.