看起来您是在数据浏览器中运行的。对于自定义 SQL 徽章,您需要启用隐藏的站点设置,并将查询添加到徽章页面:
This guide explains how to create triggered custom badge queries in Discourse, including the types of badges, constraints for triggered badges, and an example query.
Required user level: Administrator
This feature is disabled by default. To enable it, follow this guide .
When defining badges in Discourse, you’ll encounter a “Trigger” option with the following choices:
Update daily
When a user acts on a post
When a user edits or creates a post
Wh…
但是,根据托管套餐的不同,并非所有人都能够执行此操作。
不过,如果您无法使用自定义 SQL 触发器,数据浏览器中的一个也是完全可行的。 我认为您需要就运行频率以及如何从结果中授予徽章(手动逐个授予,还是通过批量授予)做出一些选择,但这绝对是可行的。
也许简单的东西会更好,但您或许也想添加一个日期范围参数?
WITH foo AS (SELECT ub.user_id,count(ub.user_id), max(ub.granted_at) granted_at
FROM user_badges ub
WHERE ub.badge_id=108
GROUP BY ub.user_id)
SELECT user_id, granted_at
FROM foo
WHERE count >4
ORDER BY granted_at DESC