UPDATE...WHERE l'indice est le plus grand

Résolu/Fermé
romanikou - 11 mai 2005 à 16:22
ACNet Messages postés 64 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 24 novembre 2007 - 24 nov. 2007 à 03:38
bonjour tout le monde, [APIwin32 sous visualc++]

voila j'ai inséré dans la table SPB1502AL les champs P95,P96,P97.
wsprintf(szBuffer, "UPDATE SPB1502AL SET P95 = '%s', P96 '%s', P97 = '%s' WHERE Indice = 1", szP95, szP96, szP97);
le souci que j'ai, c'est que je ne veux pas les insérer toujours où l'indice = 1 (WHERE Indice = 1) mais où l'indice est toujours le plus grand.
c'est à dire qu'au fur et à mesure des enregistrements, l'indice s'incrémente de 1 et je voudrais faire cet UPDATE toujours sur le dernier enregistrement.

merci d'avance
A voir également:

4 réponses

m0n0-le-14r3 Messages postés 174 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 25 octobre 2005 17
11 mai 2005 à 16:24
ben v'la p'tet une soluc :

tu comptes le nombre de lignes ds ta table et tu fais +1 si tu n'enlèves pas d'indices en cours de routes..
0
Salut !

tu dois calculer l'indice à chaque fois.

tu fais une requete "select max(indice) from ta_table"

apres tu rajoutes 1 pour obtenir ton nouvel indice.

Bonne chance! ;-)
0
merci à vous 2 mais j'ai préféré la solution de karine,
merci ciao
0
ACNet Messages postés 64 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 24 novembre 2007 14
24 nov. 2007 à 03:38
Bonjour,

ce post date un peu, mais je pense que ça peut toujours être utile aux gens qui tombent dessus en faisant une recherche,

donc personnellement je recommanderais plutôt une solution du type :


update SPB1502AL set P95 = '%s', P96 '%s', P97 = '%s' order by indice desc limit 1

(ce qui signifie : faire la mise à jour, par ordre décroissant (on commence par l'indice le plus grand) et s'arrêter au premier)


Bonne continuation
0