PDA

Visualizza la versione completa : Paginazione risulati select


webdevil89
20-10-2008, 14:31
Ciao a tutti ragazzi, devo recuperare i dati dal db in modo che ne vengano recuperati solo 3 per volta...ho provato ma mi prende sempre gli stessi 3 all'inizio! ho provato con la LIMIT...ma t-sql non me la accetta...come posso fare?

Tigre851
21-10-2008, 14:06
ma la query che stai scrivendo è a se stante? al contrario è inclusa in un qualche modulo sw?

se ti trovassi nel primo caso dubito ci sia un sistema per fare qualcosa, nel secondo invece me ne vengono in mente abbastanza... fammi sapere

webdevil89
21-10-2008, 14:11
La query viene richiamata da una store...e quindi non mi impagina i risultati...dici che non c'e niente da fare?

Tigre851
21-10-2008, 16:49
No ti spiego se la tua query vive in un contesto php ad esempio puoi memorizzare i dati restituiti su una variabile, fare tutte le modifiche che ti interessano e poi dare il risultato della trasformazione in pasto alla store. Se altresì questa select e questa store vivono in totale isolamento e solitudine (cosa abbastanza singolare di solito) mi viene in mente un sistema un po' artigianale, ovvero aggiungere al database una colonna ROWNUM implementata tramite un indice che si autoincrementa. a questo punto la tua select diventerebbe:

SELECT *
FROM TABLE
WHERE ROWNUM BETWEEN 1 and 4

ad esempio, rimane cmq il problema che ogni volta dovresti cambiare i limiti.

dimmi se ti serve un aiuto per percorrere una delle 2 strade che ti ho indicato; in caso se mi viene in mente qualcosa di meglio posto.


Hola

webdevil89
21-10-2008, 16:51
Sinceramente non ho capito molto bene...comunque io uso asp.net con db sql server...non ho proprio idea di come continuare...

Tigre851
21-10-2008, 17:02
Ok però dovresti essere un pochino + dettagliato altrimenti mi viene veramente difficile aiutarti o per lo meno indirizzarti (non conosco asp.net ho qualche conoscenza basilare di asp). hai capito cosa intendevo con l'aggiungere il numero di riga alla tabella? ho bisogno che tu mi spieghi bene fino a dove arrivi e dove vuoi arrivare altrimenti non posso aiutarti

webdevil89
21-10-2008, 17:04
allora...io una soluzione ce l'ho già...ma purtroppo e complicata...e incasinata da elaborare...e volevo semplicemente sapere se si riusciva ad avere un metodo facile come i limit...visto che da stored i limit non me li prende....capito che intendo?

Tigre851
21-10-2008, 17:10
Se usi t-sql l'equivalenti di Limit è TOP...

webdevil89
21-10-2008, 17:14
eh..ma la sintassi della limit è LIMIT $start,$step...per la top invece? sicuramente gli dai quanti risultati vuoi...ma dp come mantengo dove cono arrivato? io uso top(@step)...poi altrio?

Tigre851
22-10-2008, 09:20
Prova a guardare questo se può aiutarti:

http://forum.mysqlperformanceblog.com/s/m/1674/

per avere ad esempio le righe 4 - 5 - 6 puoi fare una top fino a 3, poi una top fino a 7 e in fine fare la differenza come indicato nell'esempio.

Loading