如何创建支持输入用户ID并输出好友总数的SQL函数
MySQL 实现接收用户ID返回好友总数的函数
你提供的参考代码存在核心问题:SELECT 查询得到的好友计数值没有赋值给声明的userCount变量,运行时会返回空值或报错,修正后的实现如下:
-- 移除已存在的同名函数 DROP FUNCTION IF EXISTS counting_friends; -- 临时修改语句结束符,避免和函数内部的分号冲突 DELIMITER // CREATE FUNCTION counting_friends(user_id INT) RETURNS INT DETERMINISTIC BEGIN DECLARE userCount INT; -- 将计数结果赋值给变量 SELECT COUNT(*) INTO userCount FROM user_friend WHERE source_id = user_id; RETURN userCount; END // -- 恢复默认语句结束符 DELIMITER ;
调用方法
直接执行SELECT counting_friends(要查询的用户ID);即可得到对应用户的好友总数。
注意事项
- 以上实现默认你的好友关系表名为
user_friend,发起好友请求的用户ID字段为source_id,如果实际表结构和字段名不同请对应修改 - 如果你的好友关系是单向存储(仅存一条
source_id加target_id的记录代表双向好友),需要将查询条件调整为WHERE source_id = user_id OR target_id = user_id即可统计完整好友数。
内容的提问来源于stack exchange,提问作者Miki
相关产品推荐
相关产品推荐

