zhibo/diagnose_current_follow_issue.sql

108 lines
2.6 KiB
MySQL
Raw Normal View History

2026-01-03 15:32:31 +08:00
-- 诊断当前关注页面问题
-- 执行这个脚本来查看具体问题所在
SELECT '========== 1. 检查当前登录用户的关注记录 ==========' as step;
-- 查看所有关注记录
SELECT
fr.id,
fr.follower_id,
fr.follower_nickname,
fr.followed_id,
fr.followed_nickname,
fr.follow_status,
fr.is_deleted,
fr.create_time
FROM eb_follow_record fr
ORDER BY fr.create_time DESC
LIMIT 20;
SELECT '========== 2. 检查关注状态值的分布 ==========' as step;
SELECT
follow_status,
COUNT(*) as count,
GROUP_CONCAT(DISTINCT CONCAT(follower_id, '->', followed_id) LIMIT 5) as examples
FROM eb_follow_record
GROUP BY follow_status;
SELECT '========== 3. 检查主播用户 ==========' as step;
SELECT
u.uid,
u.nickname,
u.is_streamer,
COUNT(DISTINCT lr.id) as room_count,
SUM(CASE WHEN lr.is_live = 1 THEN 1 ELSE 0 END) as live_count
FROM eb_user u
LEFT JOIN eb_live_room lr ON u.uid = lr.uid
WHERE u.is_streamer = 1
GROUP BY u.uid, u.nickname, u.is_streamer
ORDER BY room_count DESC;
SELECT '========== 4. 检查所有直播间 ==========' as step;
SELECT
lr.id,
lr.uid,
u.nickname as streamer_name,
lr.title,
lr.is_live,
lr.started_at,
lr.view_count
FROM eb_live_room lr
LEFT JOIN eb_user u ON lr.uid = u.uid
ORDER BY lr.is_live DESC, lr.id DESC
LIMIT 20;
SELECT '========== 5. 模拟关注页面查询用户43 ==========' as step;
-- 获取用户43的关注列表
SELECT
'用户43的关注列表' as info,
fr.followed_id,
fr.followed_nickname,
fr.follow_status,
u.is_streamer
FROM eb_follow_record fr
LEFT JOIN eb_user u ON fr.followed_id = u.uid
WHERE fr.follower_id = 43
AND fr.is_deleted = 0;
-- 查找这些被关注用户的直播间
SELECT
'用户43关注的主播的直播间' as info,
lr.id as room_id,
lr.uid as streamer_uid,
u.nickname as streamer_name,
lr.title as room_title,
lr.is_live,
lr.started_at
FROM eb_live_room lr
INNER JOIN eb_user u ON lr.uid = u.uid
WHERE lr.uid IN (
SELECT fr.followed_id
FROM eb_follow_record fr
WHERE fr.follower_id = 43
AND fr.is_deleted = 0
AND fr.follow_status IN ('1', '关注')
)
ORDER BY lr.is_live DESC;
SELECT '========== 6. 检查是否有follow_status不是1的记录 ==========' as step;
SELECT
follow_status,
COUNT(*) as count
FROM eb_follow_record
WHERE follow_status != '1'
GROUP BY follow_status;
SELECT '========== 7. 检查用户表中的is_streamer字段 ==========' as step;
SELECT
is_streamer,
COUNT(*) as count
FROM eb_user
GROUP BY is_streamer;