sql, GROUP

sql, GROUP - SQL/NoSQL - Programmation

Marsh Posté le 05-07-2006 à 14:42:13    

Bonjour j'ai une petite erreur dans se script :SELECT nom FROM image WHERE MAX(idNom)==>Utilisation invalide de la clause GROUP. Merci

Reply

Marsh Posté le 05-07-2006 à 14:42:13   

Reply

Marsh Posté le 05-07-2006 à 15:14:09    

Et bien, pour utiliser l'opération MAX, il faut un GROUP BY.
 
Mais bon, dans ton cas, pour savoir quelle est la solution appropriée (la plus simple ;-)) il faudrait que tu nous laisse des détails plus précis sur l'organisation de ta base et sur ce que tu veux obtenir... ;-)
 
Samplay

Reply

Marsh Posté le 05-07-2006 à 15:41:25    

jai une table qui s'apel "image" qui contient 4 colonne "idNom(autoincrement)    ;     Nom;dossier   ;  date  ;  auteur"  je voudrais avoir idNom maximun pour pouvoir récupéré le plus recent Nom

Reply

Marsh Posté le 05-07-2006 à 15:53:25    

Ok Ok !!
 
Dans ce cas, tu commence par une sélection toute conne. Tu la tries par ordre de idNom décroissant (le plus grand en premier donc). Et tu utilises le LIMIT 1 qui te permet de ne garder que le premier tuple qu'il trouve.
 
D'où :
SELECT nom
FROM image
ORDER BY idNom DESC
LIMIT 0,1;
 
Par contre, au niveau du LIMIT, fais un test pour voir comment l'écrire. De mémoire, ça doit être ça :
LIMIT a,b signifie qu'il prend b tuples à partir de la position a. Mais je suis plus sûr à 100%...
 
 
Bon courage !
Samplay

Reply

Marsh Posté le 05-07-2006 à 16:04:08    

jte remercie sa marche, mais comme je vai avoir entre 5000 et 10 000 entré dans cette table cele ne va pas tiré de trop a tout triée car ordre decroissant?  :??:

Reply

Marsh Posté le 05-07-2006 à 18:32:54    

Je ne suis pas un expert en optimisation de requêtes, très loin de là... Mais à mon avis, ne t'inquiète vraiment pas pour ça... ;)

Reply

Marsh Posté le 03-08-2006 à 22:28:17    

50000 entrées sur internet, il prend 2 secondes à afficher une grosse requete
t'inquiete...


---------------
http://www.ypikay.com
Reply

Marsh Posté le 04-08-2006 à 10:44:28    

deja comme il est dit ne t inquietes pas pour le temps d execution de la requete ca restera tres rapide (surtout si tes tables sont en MyISAM)
 
tu peux ameliorer ta requete de la maniere suivante (si ta version de MySQL te le permet >= 4.1.9)
 

Code :
  1. SELECT nom FROM image WHERE idNom= (select MAX(idNom) from image)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed