Bonjour,

La requête suivante, me donne quelque chose du genre:
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
Résultats :
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
La dernière colonne indique un statut du personnage, plus le statut est élever, plus le chiffre est petit.

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 :

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
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
 
UPDATE `participant` SET `parStaID` = 1 WHERE `parID` IN ( 12, 13, 14, 15, 16 )
Voilà, le but étant de ne pas arriver avec pleins de requete update dans une boucle...

Si vous avez des pistes, merci de m'éclairer

A bientot,

Sylvain