58 lines
1.5 KiB
MySQL
58 lines
1.5 KiB
MySQL
|
|
-- ============================================
|
|||
|
|
-- 诊断 userId=1 的消息数据问题
|
|||
|
|
-- 创建时间: 2026-01-27
|
|||
|
|
-- ============================================
|
|||
|
|
|
|||
|
|
-- 1. 检查用户1是否存在
|
|||
|
|
SELECT '=== 检查用户1是否存在 ===' AS step;
|
|||
|
|
SELECT * FROM user WHERE id = 1;
|
|||
|
|
|
|||
|
|
-- 2. 检查用户1的消息数量
|
|||
|
|
SELECT '=== 检查用户1的消息数量 ===' AS step;
|
|||
|
|
SELECT COUNT(*) as total_messages FROM message WHERE user_id = 1 OR receiver_id = 1;
|
|||
|
|
|
|||
|
|
-- 3. 检查是否有异常的消息记录(NULL字段)
|
|||
|
|
SELECT '=== 检查异常消息记录 ===' AS step;
|
|||
|
|
SELECT * FROM message
|
|||
|
|
WHERE (user_id = 1 OR receiver_id = 1)
|
|||
|
|
AND (
|
|||
|
|
id IS NULL
|
|||
|
|
OR user_id IS NULL
|
|||
|
|
OR receiver_id IS NULL
|
|||
|
|
OR content IS NULL
|
|||
|
|
OR created_time IS NULL
|
|||
|
|
)
|
|||
|
|
LIMIT 10;
|
|||
|
|
|
|||
|
|
-- 4. 检查消息表结构
|
|||
|
|
SELECT '=== 检查消息表结构 ===' AS step;
|
|||
|
|
DESCRIBE message;
|
|||
|
|
|
|||
|
|
-- 5. 查看用户1最近的消息记录
|
|||
|
|
SELECT '=== 用户1最近的消息记录 ===' AS step;
|
|||
|
|
SELECT * FROM message
|
|||
|
|
WHERE user_id = 1 OR receiver_id = 1
|
|||
|
|
ORDER BY created_time DESC
|
|||
|
|
LIMIT 10;
|
|||
|
|
|
|||
|
|
-- 6. 检查是否有外键约束问题
|
|||
|
|
SELECT '=== 检查外键约束 ===' AS step;
|
|||
|
|
SELECT
|
|||
|
|
TABLE_NAME,
|
|||
|
|
COLUMN_NAME,
|
|||
|
|
CONSTRAINT_NAME,
|
|||
|
|
REFERENCED_TABLE_NAME,
|
|||
|
|
REFERENCED_COLUMN_NAME
|
|||
|
|
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
|
|||
|
|
WHERE TABLE_NAME = 'message'
|
|||
|
|
AND REFERENCED_TABLE_NAME IS NOT NULL;
|
|||
|
|
|
|||
|
|
-- 7. 检查未读消息统计
|
|||
|
|
SELECT '=== 检查未读消息统计 ===' AS step;
|
|||
|
|
SELECT
|
|||
|
|
receiver_id,
|
|||
|
|
COUNT(*) as unread_count
|
|||
|
|
FROM message
|
|||
|
|
WHERE receiver_id = 1 AND is_read = 0
|
|||
|
|
GROUP BY receiver_id;
|