【发布时间】:2020-10-11 13:57:34
【问题描述】:
我正在尝试在 MySQL 中为我有 4 列的“友谊”表创建一个函数:
friendship_id、status、user1_id 和 user2_id(最后两个也是指向另一个表 'users' 的外键)。
函数应该接收一个参数,即用户ID,并返回该用户有多少朋友。
我创建了一个这样的函数:
CREATE FUNCTION num_of_friends(id int)
RETURNS int(11)
BEGIN
SET @friends_count = (SELECT COUNT(user2_id) FROM friendships WHERE user1_id = id);
RETURN @friends_count;
END
因此,如果该特定用户的 id 在 user1_id 列中,则此函数会返回该特定用户的朋友数。
但是有些用户的 id 只在 user2_id 列中。
如何检查我们作为参数传递的用户 id 是否存在于任一列中并据此计算友谊?
【问题讨论】:
标签: mysql