Devrais-je pouvoir exécuter n’importe quelle requête de badge dans l’Explorateur de données ?
Je souhaite créer une requête de badge personnalisée en utilisant « Appreciated » comme point de départ. Je saisis la requête Appreciated dans l’Explorateur de données :
SELECT p.user_id, current_timestamp AS granted_at
FROM posts AS p
WHERE p.like_count >= 1
AND (:backfill OR p.user_id IN (:user_ids))
GROUP by p.user_id
HAVING count(*) > 20
Cela génère une erreur :
missing value for :backfill
Je comprends vaguement que le « : » indique une « variable liée », ce qui améliore l’efficacité. J’ai essayé de supprimer la partie concernant le backfill, mais cela provoque une autre erreur.
You will need to leave out the AND (:backfill OR p.user_id IN (:user_ids)) condition to run the query in the Data Explorer. :backfill and :user_ids both expect parameters to be passed to them.
Thanks, it seems to work fine without the AND clause. Can you tell me what the clause does (assuming it gets the parameters passed in), so I can decide whether to keep it?
If your badge is triggered by a user acting on a post, then you need to include this condition. The best description I’ve seen of how the :backfill and :user_ids parameters are used in badge queries is in the ‘Triggered badges have 2 extra constraints’ section of Create Triggered Custom Badge Queries.