Bonjour,
j'ai une simple table de scores:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
DROP TABLE IF EXISTS `votes`;
CREATE TABLE IF NOT EXISTS `votes` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `score` varchar(8) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
INSERT INTO `votes` (`id`, `score`) VALUES
(1, '160'),
(2, '100'),
(3, '120'),
(4, '100'),
(5, '140'),
(6, '100');
Je voudrais pouvoir obtenir la liste des 3 meilleurs scores, sous la forme 1,5,3. Donc j'essaye:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT GROUP_CONCAT( DISTINCT CAST(id AS CHAR) SEPARATOR "," ) AS scid 
FROM `votes` 
WHERE 1 
ORDER BY `score` DESC LIMIT 3;
Ce qui ne marche pas. probablement car je n'ai pas de groupe défini.

Comment puis je faire pour obtenir cette des 3 premiers résultats en une seule requete ?

Merci d'avance