zhibo/verify_fans_count.sql

78 lines
2.3 KiB
MySQL
Raw Normal View History

2026-01-03 15:32:31 +08:00
-- 快速验证粉丝数统计
-- 用于确认关注数据和统计逻辑是否正确
-- 1. 查看所有主播
SELECT
uid,
nickname,
phone,
is_streamer,
streamer_level
FROM eb_user
WHERE is_streamer = 1
ORDER BY uid;
-- 2. 查看所有关注记录
SELECT
id,
follower_id,
follower_nickname,
followed_id,
followed_nickname,
follow_status,
is_deleted,
create_time
FROM eb_follow_record
ORDER BY create_time DESC;
-- 3. 统计每个主播的粉丝数(正确的统计方式)
SELECT
u.uid as '主播ID',
u.nickname as '主播昵称',
COUNT(fr.id) as '粉丝数'
FROM eb_user u
LEFT JOIN eb_follow_record fr ON u.uid = fr.followed_id
AND fr.follow_status IN ('1', '关注')
AND fr.is_deleted = 0
WHERE u.is_streamer = 1
GROUP BY u.uid, u.nickname
ORDER BY COUNT(fr.id) DESC;
-- 4. 查看具体某个主播的粉丝列表(替换 1 为实际的主播ID
SELECT
fr.follower_id as '粉丝ID',
u.nickname as '粉丝昵称',
u.phone as '粉丝手机号',
fr.follow_status as '关注状态',
fr.create_time as '关注时间'
FROM eb_follow_record fr
LEFT JOIN eb_user u ON fr.follower_id = u.uid
WHERE fr.followed_id = 1 -- 替换为实际的主播ID
AND fr.follow_status IN ('1', '关注')
AND fr.is_deleted = 0
ORDER BY fr.create_time DESC;
-- 5. 检查关注状态字段的值分布
SELECT
follow_status as '状态值',
COUNT(*) as '记录数',
GROUP_CONCAT(DISTINCT id ORDER BY id LIMIT 5) as '示例ID'
FROM eb_follow_record
GROUP BY follow_status;
-- 6. 检查是否有被逻辑删除的记录
SELECT
is_deleted as '删除标记',
COUNT(*) as '记录数'
FROM eb_follow_record
GROUP BY is_deleted;
-- 7. 如果发现状态值不一致,可以执行以下修复(谨慎执行)
-- UPDATE eb_follow_record SET follow_status = '1' WHERE follow_status = '关注';
-- UPDATE eb_follow_record SET follow_status = '0' WHERE follow_status = '取消关注' OR follow_status = '0';
-- 8. 测试插入一条关注记录(用于测试)
-- 注意需要替换为实际存在的用户ID
-- INSERT INTO eb_follow_record (follower_id, follower_nickname, followed_id, followed_nickname, follow_status, is_deleted, create_time)
-- VALUES (2, '测试用户', 1, '测试主播', '1', 0, NOW());