Выдать бейдж на основе количества бронзовых/серебряных/золотых бейджей

Вы можете использовать этот запрос для создания пользовательских значков на уровне участников:

SQL-запрос

SELECT user_id, current_timestamp granted_at 
FROM user_badges  
JOIN badges
On user_badges.badge_id = badges.id
WHERE badges.badge_type_id = 3
GROUP BY user_id 
HAVING count(*) >= 15

badge_type_ids

Бронза: 3
Серебро: 2
Золото: 1

Другой вариант, если вы хотите иметь более 3 групп целевых значков, — собрать их в пользовательские разделы, а затем выполнять запрос по badge_grouping_id. Например, здесь с 4 званиями пиратского экипажа:

SQL-запрос

SELECT user_id, current_timestamp granted_at 
FROM user_badges  
JOIN badges
On user_badges.badge_id = badges.id
WHERE badges.badge_grouping_id = 1
GROUP BY user_id 
HAVING count(*) >= 10

badge_grouping_ids

Начало работы: 1
Сообщество: 2
Публикации: 3
Уровень доверия: 4
Другое: 5

А затем подсчитывайте значения для ваших пользовательских разделов.

5 лайков