MySQL Forums
Forum List  »  French

Re: "Traduction"
Posted by: Gillou -
Date: December 10, 2009 11:50AM

Ouh la boulette... mille pardons ! C'était la diapo 16.
Voici le code auquel je faisais allusion :

mysql> SET @num :=0, @rank :=0, @prev := NULL;
mysql> SELECT @num := @num + 1 AS row, @rank :=if(@prev != php, @num, @rank) AS rank, country, @prev := php AS php FROM statsPHP ORDER BY php;

php est une valeur numérique

Pour tout vous dire, cette requête m'intéresse car j'essaie d'obtenir le rang dans un classement d'une table MySQL. J'y arrive sauf que lorsqu'il y a des exaequos, cela ne me donne pas la valeur que je devrais avoir.

Par exemple, si Pierre et Paul ont 8 points, que Jean en a 6, si je demande quel est le rang de Jean, ma requête me répondra 2. Voici la requête que j'utilise d'ailleurs au cas où quelqu'un pourrait trouver la solution à partir de ça :

$classement = mysql_query("SELECT a.nom, (SELECT COUNT(DISTINCT b.points) FROM table AS b WHERE b.points >= a.points) AS 'position' FROM table AS a WHERE a.nom = '".$nom."' ORDER BY position ASC");

La diapo 16 citée plus haut montre un code qui a l'air de bien gérer les exaequos, il m'intéresse donc fortement. Mais je ne comprends pas vraiment le 100 % MySQL.

Merci pour votre aide !

Options: ReplyQuote


Subject
Views
Written By
Posted
4231
December 10, 2009 07:58AM
2570
December 10, 2009 09:31AM
Re: "Traduction"
2735
December 10, 2009 11:50AM
2514
December 10, 2009 11:53AM
2716
December 10, 2009 01:28PM
2444
December 10, 2009 07:59PM
2574
December 11, 2009 01:47AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.