Я пытаюсь создать функцию в MySQL для моей таблицы 'дружбы', где у меня есть 4 столбца:
friend_id, status, user1_id и user2_id (последние два также являются внешними ключами, которые указывают на другой table 'users').
Функция должна получать один параметр, который является идентификатором пользователя, и возвращать, сколько друзей у этого пользователя.
Я создал такую функцию:
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
Итак, эта функция возвращает количество друзей для указанного c пользователя, если его идентификатор находится в столбце user1_id.
Но есть некоторые пользователи, чей идентификатор находится только в столбце user2_id.
Как я могу проверить, существует ли идентификатор пользователя, который мы передали в качестве параметра, в любом из столбцов, и на основании этого подсчитать количество дружеских отношений?