[SQL] SELECT 1 ligne toute les x lignes

Résolu/Fermé
Digit@lChord Messages postés 129 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 5 septembre 2012 - Modifié par Digit@lChord le 12/07/2012 à 20:00
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 - 13 juil. 2012 à 17:58
Bonjour,

Pour faire simple, j'aimerais que lorsque je fais un "SELECT * from table" sur une table contenant 90000 lignes, il me sélectionne UNE ligne TOUTE LES 450 lignes.
Ainsi je n'aurais pas 90000 résultat mais seulement 200.
C'est possible ?

Si oui, quelqu'un aurai il une piste ?
A voir également:

6 réponses

Bonjour

Si les ID sont consécutifs:
"SELECT * FROM matable WHERE id % 450=1"

S'ils ne sont pas consécutifs, on peut fabriquer un compteur (temporaire) qui joue le même rôle :
"SET @rownum:=0;" puis
"SELECT * FROM matable WHERE (@rownum:=@rownum+1) % 450=1"
4
Digit@lChord Messages postés 129 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 5 septembre 2012 8
13 juil. 2012 à 14:47
Merci ça fonctionne parfaitement :-)
0
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 13
13 juil. 2012 à 17:58
voila... le père a été plus rapide :)
0
Digit@lChord Messages postés 129 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 5 septembre 2012 8
12 juil. 2012 à 20:36
Up :-)
0
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 13
13 juil. 2012 à 12:03
oui c'est possible, il faut que tu récupères d'abord toutes tes lignes :
$req = mysql_query("SELECT * from table");"


ensuite que tu fasses une boucle :
n = 0;
while ($data = mysql_fetch_array($req))
{
     if (n == 450)
     {
          //tu la stockes ou tu veux
     }
n++;
}
0
Digit@lChord Messages postés 129 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 5 septembre 2012 8
13 juil. 2012 à 14:08
"oui c'est possible, il faut que tu récupères d'abord toutes tes lignes :"

Bah oui c'est un peu le problème.
Si je fait un SELECT sur beaucoup de ligne, ça va pas être plus lent que si je faisais un SELECT sur quelques lignes ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 13
13 juil. 2012 à 14:18
dans ta base : chaque ligne a-t-elle un id ?
et ces id : sont-ils triés par ordre croissant ? (sont-ils a la suite : 1,2,3,4... et non 1,7, 90, 456...) ???
0
Digit@lChord Messages postés 129 Date d'inscription mardi 24 novembre 2009 Statut Membre Dernière intervention 5 septembre 2012 8
13 juil. 2012 à 14:30
Oui j'ai des ID, triés par ordre croissants 1,2,3,4,5,6,7,8,9...
La fonction modulo en sql pourrait elle être utile ?
0