Bonjour,
J'utilise MySQL mais je pense que mon problème est assez générique.
voici la table :
Voici un exemple de contenu avec juste les colonnes qui nous concernent :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE TABLE IF NOT EXISTS `codq2_chat` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `flag` tinyint(2) unsigned DEFAULT '0', `time` int(11) DEFAULT NULL, `name` varchar(16) NOT NULL DEFAULT '', `msg` text, PRIMARY KEY (`id`) );
Cette table est utilisée pour un jeu vidéo et contient des évènements. Elle se remplie au fil du temps. Quand un joueur vote, cela ajoute une ligne, seul le dernier vote de chaque joueur doit être pris en compte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 name msg time betatest3 startmap.vote_ammo 1271063362 betatest2 startmap.vote_ammo 1271063342 betatest2 startmap.vote_health 1271063337 betatest startmap.vote_health 1270673611 betatest startmap.vote_ammo 1270555822 betatest startmap.vote_health 1270555717 betatest startmap.vote_ammo 1270555712
J'ai fait cette requête pour connaitre le résultat des votes :
Le résultat est du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT COUNT(DISTINCT name) AS count, msg FROM codq2_chat WHERE flag = 0x81 AND ( msg = 'startmap.vote_ammo' OR msg = 'startmap.vote_health' ) GROUP BY msg
Si un joueur vote 10 fois pour la même chose, pas de problème, 1 seul vote est pris en compte. Par contre s'il vote pour les 2 choix, il est compté 2 fois
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 msg count startmap.vote_ammo 3 startmap.vote_health 2
Est ce que quelqu'un a une piste pour ne prendre en compte que le dernier vote de chaque joueur ?
Merci d'avance
Partager