2010-12-09 66 views
4

je vais avoir la table de la liste des utilisateurs, dans ma page d'inscription, il y a pagination, alors maintenant je trouve quand sql cliquez sur la pagination, à savoir. quand cliquez sur 1 obtenir 10 premiers enregistrement de la table, quand cliquez sur 2 obtenir 11 à 20 enregistrement, lorsque CLICK 3 obtenir 21 à 30 procès-verbal, comment le look sql comme,sql pour obtenir la liste de recherche de personnes

merci à l'avance

J'utilise Informix db

+0

Cette question a quelques informations utiles pour Informix: http://stackoverflow.com/questions/1033729/informix-subqueries-with-first-option –

Répondre

8

Informix a des clauses analogues, mais différents de, LIMIT et OFFSET:

SELECT SKIP n LIMIT m ... 

Vous pouvez utiliser FIRST en place de LIMIT.

Voir la IDS 11.70 InfoCenter ou des emplacements similaires pour les versions antérieures d'IDS.

1

cE COMMENTAIRE Les deux prennent en charge MySQL et PostgreSQL a été écrit avant OP DÉCLARÉ IL/ELLE eST uN INFORMIX dB UTILISATION

une caractéristique vraiment cool appelé OFFSET qui est habituellement utilisé avec une clause LIMIT.

La clause LIMIT permet de limiter le nombre de résultats renvoyés dans une instruction SQL. Donc, si vous avez 1000 lignes dans une table, mais seulement voulez retourner les 10 premiers, vous feriez quelque chose comme ceci:

SELECT column FROM table 
LIMIT 10 

Ceci est similaire à la clause TOP sur Microsoft SQL Server. Cependant la clause LIMIT va toujours à la fin de la requête sur MySQL et PostgreSQL.

Supposons maintenant que vous vouliez afficher les résultats 11-20. Avec juste mot-clé OFFSET son aussi facile, la requête suivante fera:

SELECT column FROM table 
LIMIT 10 OFFSET 10 

Cela rend facile à coder les résultats de plusieurs pages ou SQL avec pagination. L'approche utilisée consiste souvent à SÉLECTIONNER tous les enregistrements, puis à les filtrer sur le niveau du serveur d'applications, plutôt que directement sur la base de données. Comme vous pouvez l'imaginer sur la base de données donne de meilleures performances.

Si vous voulez afficher les résultats 21-30, utilisez la requête suivante:

SELECT column FROM table 
LIMIT 10 OFFSET 20 
+0

-1. Même ainsi, cette réponse n'est pas très utile pour résoudre le problème que le PO a à portée de main. Votre autre réponse est plus utile, alors j'ai donné +1. –

+0

Ce n'est pas utile dans le contexte d'Informix. Il est bon de savoir si on utilise un db qui supporte la syntaxe ci-dessus:] –

1

Maintenant que vous l'avez indiqué que vous utilisez Informix, la clause LIMIT ne fonctionnera pas. Êtes-vous capable de placer à la place votre sélection dans un tableau et d'appeler les données désirées du tableau?