J'ai une déclaration MySQL qui m'a pris toute la nuit à venir avec. Je me demande si cette chose peut être converti d'un appel direct à quelque chose d'assez comme Object.find (: conditions)Déclaration MySQL convertir en jolie déclaration Rails AR?
ActiveRecord::Base.connection.execute("
SELECT *,
(SELECT COUNT(*)
FROM scores AS temp2
WHERE temp2.score > scores.score
ORDER BY score DESC) + 1 AS rank
FROM scores
WHERE user_id=%s
ORDER BY score DESC"
% user_id).fetch_hash
Cette déclaration fait partie d'un site score élevé construit pour un jeu Android. Il obtient le meilleur score et a une sous-requête qui lui donne aussi le rang.
Cela peut-il être amélioré? Aussi, est-ce la méthode la plus efficace pour y parvenir?
Merci, Justin
Pouvez-vous décrire plus en détail ce que vous voulez faire et comment votre schéma va ensemble? Il est difficile de désosser le sql et votre description est un peu vague. –
Il essaie de comprendre combien de scores sont plus élevés que le score d'un utilisateur donné .... Je pense que – Faisal