Requête update- numéroter du + ancien au + récent

Fermé
DJ2809 Messages postés 5 Date d'inscription lundi 25 avril 2022 Statut Membre Dernière intervention 22 août 2022 - 22 août 2022 à 23:44
jordane45 Messages postés 38424 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 février 2025 - 23 août 2022 à 19:48

Bonjour,
Je cherche à résoudre un problème de requête UPDATE pour numéroter des occurrences (id) du plus ancien au plus récent :
Je dispose d'une table A contenant ces colonnes : Id, date, numb_occ

id        Date                   num_ occ
127    01/05/2014    
321    24/02/2019    
114    01/04/2021    
127    01/02/2012    
127    02/04/2013    
144    01/04/2022    
321    01/02/2020    
444    01/04/2020    
127    01/07/2022    

Résultat:

id        Date                num_occ
127    01/05/2014      3
321    24/02/2019      1
114    01/04/2021      1
127    01/02/2012      1
127    02/04/2013      2
144    01/04/2022      1
321    01/02/2020      2
444    01/04/2020      1
127    01/07/2022     4

En vous remerciant par avance
Bonne journée
DE


Windows / Chrome 95.0.4638.54

A voir également:

3 réponses

jordane45 Messages postés 38424 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 février 2025 4 734
23 août 2022 à 06:30

Bonjour

Ce qui me dérange c'est le format de tes dates...

Une date, dans mysql, se Stock dans un champ de type date (et donc sous la forme année-mois-jour)

Commence par corriger ça.. le tri sera alors possible sans souci et sans avoir à renumeroter...


0

Bonjour Jordane,

il s’agit d’un exemple, ma colonne date est dans le bon format. Je cherche à avoir la méthode la plus simple pour actualiser la colonne num_occ p

merci par avance 

DE

0
jordane45 Messages postés 38424 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 février 2025 4 734
23 août 2022 à 19:48

Si ton champ est dans le bon format, tu peux aller utiliser un ORDER BY sur la date et l'id

Puis utiliser une requête du genre pour mettre à jour

SET @r=0;
UPDATE table SET Ranking= @r:= (@r+1) ORDER BY Score DESC;

A mixer avec un truc du genre pour gérer chaque "groupe" d'id

http://www.silota.com/docs/recipes/sql-top-n-group.html

mais bon.. ça reste une drôle d'idée..


0