2011-01-27 3 views
0
다음과 같이 내가 MySQL의에서 SQLyog에있는 저장 프로 시저를 작성했습니다

,MySQL은 - 프로 시저 제한 문제

DELIMITER $$

DROP PROCEDURE IF가 test 존재를 저장. spUser $$

제작 절차 test. spUser P 어디에 GI 같은 일반로부터 FULL_NAME 프로필 등

BEGIN 

선택 gi.id, gi.user_id, CONCAT (CONCAT (FIRST_NAME '') LAST_NAME) (limit1의 INT IN start1의 INT, IN) gi.user_id = p.user_id limit start1, limit1;

END$$ 

DELIMITER;

위의 코드를 작성한 경우 오류 번호가 표시됩니다. 1064 그리고 한계 start1, limit1을 한계 5,10으로 바꾼 경우 제대로 실행됩니다.

이 문제를 어떻게 해결할 수 있습니까?

답변

1
drop procedure if exists list_users; 

delimiter # 

create procedure list_users() 
begin 
    set SQL_SELECT_LIMIT = 1; 

    select * from users; 

    set SQL_SELECT_LIMIT = DEFAULT; 
end# 

delimiter ; 


select * from users; 

+---------+----------+ 
| user_id | username | 
+---------+----------+ 
|  3 | alpha | 
|  2 | bar  | 
|  4 | beta  | 
|  1 | f00  | 
+---------+----------+ 
4 rows in set (0.00 sec) 


call list_users(); 

+---------+----------+ 
| user_id | username | 
+---------+----------+ 
|  3 | alpha | 
+---------+----------+ 
1 row in set (0.00 sec) 
+0

SQL_SELECT_LIMIT이 변수는 LIMIT를 정의합니다. 그러나 기록의 출발점은 무엇입니까? – Pradip

+0

@Ozz 큰 그림을주세요 - 무엇을하려고합니까 - 페이지 매김? –

관련 문제