Bonjour,
La requête suivante, me donne quelque chose du genre:
Résultats :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT `parEveID` , `parID` , `parChaID` , `parStaID` FROM `participant` WHERE `parEveID` IN ( 12, 13, 14, 15, 16) AND `parStaID` BETWEEN 2 AND 5 ORDER BY `parEveID` , `parStaID` , `parDateInscription` DESC LIMIT 0 , 60
La dernière colonne indique un statut du personnage, plus le statut est élever, plus le chiffre est petit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 parEveID parID parChaID parStaID 12 48 66 4 12 47 68 5 12 49 56 5 12 50 134 5 12 51 203 5 13 54 67 4 13 53 77 4 13 56 56 5 14 61 77 3 14 60 68 5 14 59 56 5 14 58 203 5 15 63 112 2 15 66 66 3 15 64 68 4 15 65 77 5 16 68 2 2 16 69 77 3 16 71 112 5 16 70 66 5
Par exemple, pour l'événement parEveID (13) il y a 3 participants, j'aimerais ne récupérer que le premier des 3 enregistrements. Est-ce possible de modifier cette requête pour obtenir quelque chose du genre comme résultats :
Qui permettrait d'obtenir le ID du personnage (parChaID) qui devrait être promu au plus haut rang parStaID (1). Avec une requete du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 parEveID parID parChaID parStaID 12 48 66 4 13 54 67 4 14 61 77 3 15 63 112 2 16 68 2 2
Voilà, le but étant de ne pas arriver avec pleins de requete update dans une boucle...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UPDATE `participant` SET `parStaID` = 1 WHERE `parID` IN ( 12, 13, 14, 15, 16 )
Si vous avez des pistes, merci de m'éclairer
A bientot,
Sylvain
Partager