Bonjour,
Je voudrais faire une requête sql qui me permette de récupérer tous les enregistrements dont l'identifiant est le plus grand. Comment faire?
Bonjour,
Je voudrais faire une requête sql qui me permette de récupérer tous les enregistrements dont l'identifiant est le plus grand. Comment faire?
il est de quel type ton identifiant ?
Regardes du côté de MAX.
A++
Utilse max() et peut être group by.
Il faudrait que tu donnes un exemple pour pouvoir t'en dire plus.....
Un identifiant est unique dans la base, donc, il ne peut pas y en avoir plusieurs "plus grands".Envoyé par Asdorve
Si tu recherches l'enregistrement qui a l'identifiant le plus grand , tu peux faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT * FROM table WHERE id = (SELECT Max(id) FROM table);
voici le style de la requete:
Qu'est-èce qui faut mettre à la place de MAX?
Code : Sélectionner tout - Visualiser dans une fenêtre à part $result = $this->Cnx->Requete("SELECT idPersonne FROM Personne WHERE idPersonne = MAX ");
ceciA++
Code : Sélectionner tout - Visualiser dans une fenêtre à part $result = $this->Cnx->Requete("SELECT MAX (idPersonne) FROM Personne ");
Code : Sélectionner tout - Visualiser dans une fenêtre à part $result = $this->Cnx->Requete("SELECT * FROM Personne WHERE idPersonne = (SELECT max(idPersonne) FROM Personne) ");
désolé mais ça me marque une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part Erreur: 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 'SELECT max(idPersonne) FROM Personne)' at line 1
Peut être qu'il vaut mieux chercher l'équivalent de MAX avec MySQL.Envoyé par Asdorve
Ce code marche avec MS SQL Server si ton champ identifiant est numérique.
Au fait Identifiant est de quel type?
du type int
Bon, ça a l'air de marcher :
Merci. A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT max(idPersonne) FROM Personne
Ta version de mySQL doit être inférieure à 4.1 et n'accepte pas les sous-requêtes.
Alternative couteuse en temps :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT a.Id, a.xxx, a.yyy FROM laTable a, laTable b WHERE a.Id <= b.Id GROUP BY a.Id, a.xxx, a.yyy HAVING COUNT(*) = 1
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager