Problème avec un select first qui génère une erreur

Eléphant du PHP | 331 Messages

17 janv. 2007, 20:20

Bonjour à tous,

Je cherche à faire la chose suivante : récupérer uniquement le premier des six enregistrements que me retourne une requete contenant un WHERE et un ORDER BY.

Voici ma requete de base :
SELECT IdMatch FROM prono_MatchLigue1 WHERE IdJourneeLigue1 = 22 ORDER BY IdMatch ASC;
Je pensais simplement la transformer pour obtenir ceci :
SELECT FIRST (IdMatch) FROM prono_MatchLigue1 WHERE IdJourneeLigue1 = 22 ORDER BY IdMatch ASC;
Mais ça ne marche pas, ça me renvoie l'erreur suivante :
MySQL a répondu:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( IdMatch ) FROM prono_MatchLigue1 WHERE IdJourneeLigue1 = 22 ORDER BY IdMatch A' at line 1
Quelqu'un peut-il m'aider ?

Merci !

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

17 janv. 2007, 20:28

Comme le dit le message d'erreur, il y a une erreur aux alentours de "( IdMatch ) ...", il faut donc que tu vérifies dans le manuel la bonne syntaxe de FIRST(). D'ailleurs, c'est ce à quoi servent les messages d'erreur, il faut les lire et suivre leurs conseils.

PS: attention il y a un piège

ViPHP
ViPHP | 1961 Messages

17 janv. 2007, 20:33

Bonsoir,

Pourquoi ne pas utiliser LIMIT tout simplement ?

Code : Tout sélectionner

SELECT IdMatch FROM prono_MatchLigue1 WHERE IdJourneeLigue1 = 22 ORDER BY IdMatch ASC LIMIT 0, 1;
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 331 Messages

17 janv. 2007, 21:14

Ben oui, tout simplement !

Bien vu !

Merci !

ViPHP
ViPHP | 1961 Messages

17 janv. 2007, 21:23

Re,

Je pense que tu faisais une confusion sur l'utilisation de first,

À ma connaissance il n'est utilisable que pour
ALTER TABLE
CREATE TABLE
HANDLER
et dans un sens de positionnement.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 331 Messages

17 janv. 2007, 21:26

ok, je pense aussi. En tout cas, je note pour plus tard ...

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

17 janv. 2007, 23:10

Moi je pense pas mais bon, thanks for all the fish.

ViPHP
ViPHP | 1961 Messages

17 janv. 2007, 23:20

Moi je pense pas mais bon, thanks for all the fish.
Excuse-moi, je comprends pas bien. Peux-tu expliquer ?
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

17 janv. 2007, 23:33

Certains de mes posts sont rhétoriques, le précédent en fait partie mais je ferai une exception pour cette fois en explicitant. Je pense qu'il y a à peu près 0 chances pour qu'il s'agisse d'une confusion avec ALTER TABLE ou quoi que ce soit sorti du manuel de MySQL, mais plutôt un tutoriel pris au hasard sur le net. En l'occurence je viens de taper "SELECT FIRST" dans Google et je suis tomber sur celui-ci.

Quant au reste... je ne suis pas certain que jay64 aura compris qu'il faut en premier lire le manuel de MySQL pour comprendre ses erreurs, mais plutôt qu'en postant sa requête ici quelqu'un la corrigera.

ViPHP
ViPHP | 1961 Messages

17 janv. 2007, 23:37

Merci Hubert,

La seconde partie, j'avais saisi. Je viens de comprendre la première,
mais j'avoue que jamais je n'aurais pensé que de tels tutos pouvaient exister.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein