problème d'écriture d'une requête

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème d'écriture d'une requête

par animithra » 16 juin 2008, 13:30

Tu as une seconde méthode :

LIMIT peut prendre 2 paramètre : le nombre d'enregistrements mais aussi la position du premier enregistrement.

ex : LIMIT 1,3 indique qu'il part de la position +1 sur 3 enregistrements.

Tu peux faire un mysql_num_rows - 3 pour la position et appliquer cette méthode...

par laTulipe » 16 juin 2008, 13:23

merci pour ta réponse

mais j'ai besoin de conserver un ordre croissant, d'où la difficulté :wink:

je ne connais pas très bien SQL, je me demandais s'il y avait une syntaxe pour ce genre de cas.

par animithra » 16 juin 2008, 12:58

Bonjour.
ça pourrait être ça, mais il manque qquechose :
SELECT * FROM table WHERE ID<10 LIMIT 3
Qu'est ce qui ne va pas concrètement ?
Parce que logiquement ça te retourne bien 4, 6 et 9 là...

[EDIT] oui en fait ça doit te rendre les 3 premiers (1,2 et 3),
il faut que tu places un tri de manière décroissante :

Code : Tout sélectionner

SELECT * FROM table WHERE ID<10 ORDER BY ID DESC LIMIT 3

problème d'écriture d'une requête

par laTulipe » 16 juin 2008, 12:31

Bonjour,

je voudrais sélectionner dans une table 3 enregistrements uniquement, situés en dessous d'un enregistrement particulier.

par ex, dans la table :

Create Table: CREATE TABLE t (
id int(3) default NULL auto_increment,
champ1 char(60) default NULL,
champ2 char(60) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM

id | champ1 | champ2
1 | aaaa | bbbb
2 | cccc | dddd
3 | eeee | fffff
4 | eeee | fffff
6 | eeee | fffff
9 | eeee | fffff
10 | eeee | fffff
12 | eeee | fffff
15 | eeee | fffff

j'aimerais sélectionner les enregistrements 4, 6, 9 en ayant pour seul repère l'enregistrement 10. Je ne sais pas si c'est très clair mon truc... :?

ça pourrait être ça, mais il manque qquechose :
SELECT * FROM table WHERE ID<10 LIMIT 3

si quelqu'un a une piste...

merci