2011-01-27 7 views
0

次のように私は、MySQLではSQLyogのでMySQLの - ストアドプロシージャの制限の問題

DELIMITER $$

DROP PROCEDURE IFは testをEXISTSをストアドプロシージャを書かれています。 spUser $$

作成手順testspUser P場合などGIとしてジェネリックからFULL_NAME、プロファイルとして

BEGIN 

選択gi.id、gi.user_id、連結(連結(FIRST_NAME、」「)、姓)(LIMIT1のINT IN START1のINT、IN) gi.user_id = p.user_id limit start1、limit1;

END$$ 

DELIMITER;

上記のコードを書いた場合、エラー番号はスローされます。 1064、limit1をlimit5に置き換えた場合、limit1は正常に動作します。

この問題を解決するにはどうすればよいですか?

答えて

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

この変数はLIMITを定義します。しかし、記録の出発点はどうですか? – Pradip

+0

@Ozz私に大きなイメージを与えてください - 何をしようとしていますか - ページネーション? –

関連する問題