le dernier de la liste [Mysql] - SQL/NoSQL - Programmation
Marsh Posté le 19-08-2004 à 17:23:09
LOL...J'ai essayé ça aussi ; rien à faire non plus !
En fait, j'ai fini par faire un order by, avec un fetch_row...mais ça ne satisfait pas ma curiosité !
Marsh Posté le 19-08-2004 à 18:59:12
Essaye :
Code :
|
Marsh Posté le 19-08-2004 à 21:24:12
select max(id), tous les champs (y compris id)
from la table
group by tous les champs sauf max(id)
having id = max(id)
Ca devrait marcher aussi
Marsh Posté le 20-08-2004 à 10:28:25
Beegee a écrit :
|
ça me parait la meilleur solution, par contre je ne suis pas sur que tu puisse faire ton "ORDER BY id" si celui-ci ne fait pas parti des champs sélectionné (ici tu ne sélectionne que "chemin" )...
Marsh Posté le 20-08-2004 à 10:58:46
avec Oracle on peut, je pense que c'est pareil pour mySql.
Le order by, c'est une indication pour l'ordre de récupération des lignes à traiter, peu importe quels champs sont ensuite retournés.
Marsh Posté le 20-08-2004 à 13:45:23
Xav_ a écrit : ça me parait la meilleur solution, par contre je ne suis pas sur que tu puisse faire ton "ORDER BY id" si celui-ci ne fait pas parti des champs sélectionné (ici tu ne sélectionne que "chemin" )... |
Sisi, normalement le order by est indépendant du select.
Par contre, dans le cadre d'une fonction de regroupement, il faut faire attention à ce que les champs du order by soient aussi présents dans la clause du group by.
Marsh Posté le 20-08-2004 à 14:12:18
merci pour les compléments de réponse, je pensai que le "ORDER BY" s'effectuai après la sélection --> pb pour trier à partir d'un champs qui n'est pas sélectionné
C'est cool, ça va me permettre d'alléger certaine de mes requêtes
Marsh Posté le 20-08-2004 à 14:23:25
Xav_ a écrit : merci pour les compléments de réponse, je pensai que le "ORDER BY" s'effectuai après la sélection --> pb pour trier à partir d'un champs qui n'est pas sélectionné |
nan, ça c'est le having
Marsh Posté le 19-08-2004 à 16:38:58
Bonjour,
Soit une table contenant id(num, auto-incrémenté) et chemin (texte)
Je voudrai afficher la valeur de chemin dont l'id est le plus grand !
Soit :
select id,chemin from matable where id=max(id);
select id,chemin from matable where id=(select max(id) from matable);
select id, chemin from matable a where id in (select max(id) from a);
<--- Rien ne marche ! --->
La doc est assez diffuse sur le sujet ; je suis en php4, mysql 4.0.13