2015-02-23 54 views
0

我想将显示结果的限制从0设置为声明变量的值。但是我在声明变量时发现错误,它说:“#1064 - 你的SQL语法有错误。”我知道DECLARE语法只在BEGIN ... END声明中被允许。但为什么我总是得到一个错误?

这是我尝试:声明变量时设置变量和错误的结果限制

BEGIN 
DECLARE panjang INT DEFAULT 0 
END; 

SET panjang := 10; 
SELECT * FROM `TABLENAME` 
limit 0, panjang 

能否请你告诉我这到底是怎么失踪了?我正在使用MySQL版本5.5.34。

回答

1
  1. 仅在存储例程中允许DECLARE。
  2. 在一个存储的例程中,你可以用一个变量来构造一个SELECT作为LIMIT;这使用CONCAT,PREPARE和EXECUTE。

如果这个SELECT来自其他编程语言(PHP,VB,Java等),我建议你在那里建立SQL,这样你就不必学习存储过程。

+0

所以,我必须创建程序对吗?或者你知道如何设置限制,比如'... LIMIT 0,(从tablename2选择count(*))? – 2015-02-23 05:01:32

+0

需要10-20行代码来完成你所要求的。你真的需要它吗? – 2015-02-23 05:09:01