J'ai une base de données de 1 table avec (sous une forme simplifiée) les champs suivants: user_id (INT), ref_id (INT), points (INT), pointsgiven (BOOL/TINY_INT)ID de classement MySQL avec des liens basés sur des retours de colonne Erreur
Je veux une requête qui renvoie le RANK de l'id_utilisateur que je spécifie en fonction des points, étant donné que pointsgiven est vrai. Le botteur est, j'ai besoin de cravates incluses. Je peux obtenir un jeu de résultats pour tous les grades si je veux avec la requête suivante
SELECT
user_id, ref_id, points, pointsgiven,
CASE
WHEN @points = COALESCE(points, 0) THEN @rownum
ELSE @rownum := @rownum + 1
END AS rank,
@points := COALESCE(points, 0)
FROM users CT
JOIN
(
SELECT @rownum := 0, @points := NULL
) r
WHERE pointsgiven=TRUE ORDER BY points DESC
Ainsi, sur cette base, je pensais que je pouvais l'utiliser comme un sous-requête pour obtenir un certain user_id comme suit:
select * from
(
SELECT
user_id, ref_id, points, pointsgiven,
CASE
WHEN @points = COALESCE(points, 0) THEN @rownum
ELSE @rownum := @rownum + 1
END AS rank,
@points := COALESCE(points, 0)
FROM users CT
JOIN
(
SELECT @rownum := 0, @points := NULL
) r
WHERE pointsgiven=TRUE ORDER BY points DESC
) as derived WHERE user_id = 15
Mais cela renvoie [BLOB - 1 B] comme le rang sur le bon id_utilisateur. Qu'est-ce que je fais mal ici?
Y at-il une chance que vous utilisiez phpmyadmin pour vérifier cela? –
Vous voudrez peut-être vérifier cette réponse fantastique concernant la détection des liens dans l'ordre de classement: http://stackoverflow.com/questions/8767323/how-best-to-get-someones-rank-from-a-scores-table-with -php-et-mysql-sans – hannebaumsaway
.. Oui Derick, c'est là que je le teste. Pourquoi dites vous cela? Praguian, merci pour le lien! – AMB0027