zhibo/修复直播间主播数据.sql
2026-01-03 15:32:31 +08:00

50 lines
1.6 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

USE zhibo;
-- 1. 查看当前有哪些主播
SELECT uid, nickname, phone, is_streamer
FROM eb_user
WHERE is_streamer = 1
ORDER BY uid
LIMIT 10;
-- 2. 查看有多少直播间的uid为空或无效
SELECT
COUNT(*) as total_rooms,
SUM(CASE WHEN uid IS NULL OR uid = 0 THEN 1 ELSE 0 END) as invalid_uid_count,
SUM(CASE WHEN uid IS NOT NULL AND uid > 0 THEN 1 ELSE 0 END) as valid_uid_count
FROM eb_live_room;
-- 3. 查看uid无效的直播间
SELECT id, uid, title, streamer_name, stream_key
FROM eb_live_room
WHERE uid IS NULL OR uid = 0 OR uid NOT IN (SELECT uid FROM eb_user)
LIMIT 10;
-- 4. 选择一个默认主播选择第一个认证主播或者指定某个uid
-- 假设选择 uid=318 作为默认主播(根据之前的数据,这个用户有很多关注记录)
SET @default_streamer_id = 318;
-- 验证这个主播是否存在
SELECT uid, nickname, phone, is_streamer
FROM eb_user
WHERE uid = @default_streamer_id;
-- 5. 将所有uid无效的直播间分配给默认主播
UPDATE eb_live_room
SET uid = @default_streamer_id,
streamer_name = (SELECT nickname FROM eb_user WHERE uid = @default_streamer_id)
WHERE uid IS NULL OR uid = 0 OR uid NOT IN (SELECT uid FROM eb_user);
-- 6. 验证修复结果
SELECT
COUNT(*) as total_rooms,
SUM(CASE WHEN uid IS NULL OR uid = 0 THEN 1 ELSE 0 END) as invalid_uid_count,
SUM(CASE WHEN uid IS NOT NULL AND uid > 0 THEN 1 ELSE 0 END) as valid_uid_count
FROM eb_live_room;
-- 7. 查看修复后的直播间
SELECT id, uid, title, streamer_name, is_live
FROM eb_live_room
ORDER BY id DESC
LIMIT 10;