PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 18-11-2013 13:57:15

moijhd
Membre
Inscription : 13-06-2009
Messages : 167

LIMIT qui ne porte pas sur le nombre de résultats

Bonjour,

Soit une table t à deux colonnes id et num.
num est une valeur qui peut être sur plusieurs lignes.

SELECT id FROM t WHERE num IN ( SELECT num FROM t WHERE :a < num AND num <= :b GROUP BY num LIMIT :x );

Comment améliorer cette requête (en supprimant la requête secondaire) ?

Merci.

Dernière modification par moijhd (18-11-2013 14:08:55)

Hors ligne

#2 19-11-2013 00:58:18

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : LIMIT qui ne porte pas sur le nombre de résultats

Saluton,
Je dirais tout bêtement :

SELECT id FROM t WHERE num BETWEEN :a +1 AND :b ;


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 19-11-2013 06:41:19

moijhd
Membre
Inscription : 13-06-2009
Messages : 167

Re : LIMIT qui ne porte pas sur le nombre de résultats

Ah je me suis piégé moi-même, je n'ai pas de borne à droite (donc pas de :b) et dans ta requête il va y avoir tous les résultats (alors que je veux pouvoir n'en prendre qu'un certain nombre).

Je corrige mon problème et ma requête :

SELECT id FROM t WHERE num IN ( SELECT num FROM t WHERE :a < num GROUP BY num ORDER BY num ASC LIMIT :x );

Si ma table ressemble à

1 | 1
2 | 1
3 | 2
4 | 3
5 | 3
6 | 3
7 | 4
8 | 4

et que je bind a = 0 et x = 3 je veux récupérer les enregistrements d'id entre 1 et 6 (inclus).

Dernière modification par moijhd (19-11-2013 06:42:17)

Hors ligne

#4 19-11-2013 07:30:05

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : LIMIT qui ne porte pas sur le nombre de résultats

Bonjour,

Désolé moijhd mais c'est MK qui t'a donné la solution, car ton LIMIT s'applique au nombre de lignes et non à la valeur de la borne supérieure.

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

Pied de page des forums