zhibo/fix_follow_status.sql

62 lines
1.7 KiB
MySQL
Raw Normal View History

2026-01-03 15:32:31 +08:00
-- 修复关注状态字段值不一致的问题
-- 将字符串"关注"统一为数字"1"
-- 1. 先查看当前的状态值分布
SELECT
follow_status,
COUNT(*) as count,
GROUP_CONCAT(DISTINCT CONCAT(follower_nickname, '->', followed_nickname) SEPARATOR '; ') as examples
FROM eb_follow_record
GROUP BY follow_status;
-- 2. 备份当前数据(可选,建议先备份)
-- CREATE TABLE eb_follow_record_backup AS SELECT * FROM eb_follow_record;
-- 3. 将字符串"关注"统一为数字"1"
UPDATE eb_follow_record
SET follow_status = '1'
WHERE follow_status = '关注';
-- 4. 将字符串"取消关注"统一为数字"0"
UPDATE eb_follow_record
SET follow_status = '0'
WHERE follow_status IN ('取消关注', '未关注');
-- 5. 验证修复结果
SELECT
follow_status,
COUNT(*) as count,
GROUP_CONCAT(DISTINCT CONCAT(follower_nickname, '->', followed_nickname) SEPARATOR '; ') as examples
FROM eb_follow_record
GROUP BY follow_status;
-- 6. 查看修复后用户 43 的关注列表
SELECT
fr.followed_id,
fr.followed_nickname,
u.is_streamer,
fr.follow_status,
fr.create_time
FROM eb_follow_record fr
LEFT JOIN eb_user u ON fr.followed_id = u.uid
WHERE fr.follower_id = 43
AND fr.follow_status = '1'
AND fr.is_deleted = 0;
-- 7. 查看修复后用户 43 应该看到的直播间
SELECT
u.uid as streamer_id,
u.nickname as streamer_name,
lr.id as room_id,
lr.title as room_title,
lr.is_live,
lr.view_count,
lr.online_count
FROM eb_follow_record fr
INNER JOIN eb_user u ON fr.followed_id = u.uid AND u.is_streamer = 1
INNER JOIN eb_live_room lr ON u.uid = lr.uid
WHERE fr.follower_id = 43
AND fr.follow_status = '1'
AND fr.is_deleted = 0
ORDER BY lr.is_live DESC;