我有这个疑问排名MySQL的具体ID
SELECT concours_photo_like.id , COUNT(concours_photo_like.id) AS nb_like , (@rank := @rank + 1) AS rank
FROM (SELECT @rank := 0) as r , concours_photo_like
JOIN concours_photo ON concours_photo.id = concours_photo_like.id_concours_photo
WHERE concours_photo.id_concours = 67
GROUP BY concours_photo_like.id_concours_photo
这里的结果
| id | nb_like | rank |
|--------|------------|------|
| 110 | 2 | 2 |
| 104 | 3 | 1 |
| 134 | 1 | 4 |
| 176 | 1 | 5 |
| 113 | 2 | 3 |
我如何获得例如特定标识的等级,如果我想的ID 134等级
我想是这样
SELECT concours_photo_like.id , COUNT(concours_photo_like.id) AS nb_like , (@rank := @rank + 1) AS rank
FROM (SELECT @rank := 0) as r , concours_photo_like
JOIN concours_photo ON concours_photo.id = concours_photo_like.id_concours_photo
WHERE concours_photo.id_concours = 67
AND concours_photo_like.id = 134
GROUP BY concours_photo_like.id_concours_photo
但结果是
| id | nb_like | rank |
|--------|------------|------|
| 134 | 1 | 1 |
,结果应为等级为4而不是1
如果你喜欢,可以考虑下列行为这个简单的两步过程:1.如果您还没有这样做,提供适当的CREATE和INSERT语句(和/或sqlfiddle),以便我们可以更容易地复制问题。 2.如果您尚未这样做,请提供与步骤1中提供的信息相对应的所需结果集。 – Strawberry