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

Résolu
romanikou -  
ACNet Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   17
 
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
karine
 
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
romanikou
 
merci à vous 2 mais j'ai préféré la solution de karine,
merci ciao
0
ACNet Messages postés 64 Date d'inscription   Statut Membre Dernière intervention   14
 
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