Kann ich im Data Explorer beliebige Badge-Abfragen ausführen?
Ich möchte eine benutzerdefinierte Badge-Abfrage erstellen, wobei ich „Appreciated" als Ausgangspunkt nehme. Ich gebe die Appreciated-Abfrage im Data Explorer ein:
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
Dabei erhalte ich einen Fehler:
missing value for :backfill
Ich habe eine vage Vorstellung davon, dass das „:" ein „Bind-Variable" ist, der die Effizienz verbessert. Ich habe versucht, den Teil mit „backfill" zu entfernen, aber das führt zu einem anderen Fehler.
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.