DROP PROCEDURE IF EXISTS .sp_friend_you_may_know;
CREATE PROCEDURE azubu.`sp_friend_you_may_know`(
IN i_user_id BIGINT,
IN i_page_start INT,
IN i_page_offset INT)
BEGIN
SET @user_id = i_user_id;
SET @page_start = i_page_start;
SET @page_offset = i_page_offset;
PREPARE statement FROM 'SELECT friend_user_id, get_gb_user_nickname(friend_user_id) as nickname, cnt FROM (SELECT friend_user_id, COUNT(friend_user_id) AS cnt FROM gb_friend WHERE user_id IN (SELECT friend_user_id FROM gb_friend WHERE user_id = ?) AND friend_user_id NOT IN (SELECT friend_user_id FROM gb_friend WHERE user_id = ?) AND friend_user_id NOT IN (?) GROUP BY friend_user_id ORDER BY cnt DESC LIMIT ?, ?) a';
EXECUTE statement USING @user_id, @user_id, @user_id, @page_start, @page_offset;
DEALLOCATE PREPARE statement;
MySQL Stored procedure에서 Paging처리가 필요해서 찾아보니.
Concat으로 문자열을 붙여서 하는 방법과 위와 같이 하는 방법이 있는것 같네요.
음.. 왜 Paging은 그냥 인풋변수를 그냥 쓰면 안될까요..ㅎㅎㅎ