DECLARE @num INT DEFAULT = 5;
SELECT * FROM page p LEFT JOIN categorylinks c ON p.page_id = c.cl_from
WHERE c.cl_to = 'Art-Rock-Band' LIMIT @num
UNION ALL
SELECT * FROM page p LEFT JOIN categorylinks c ON p.page_id = c.cl_from
WHERE c.cl_to = 'Echo-Pop-Preisträger' LIMIT @num
UNION ALL
SELECT * FROM page p LEFT JOIN categorylinks c ON p.page_id = c.cl_from
WHERE c.cl_to = 'Englische_Band' LIMIT @num
它返回错误
您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在#DEC; DECLARE @num INT DEFAULT = 5'附近使用正确的语法。在第1行
我不知道如何修复此错误,DECLARE应该可以正常工作。
答案 0 :(得分:3)
假设这是在begin
/ end
块中,您不需要=
符号:
DECLARE @num INT DEFAULT 5;
或者,您可以这样做:
SET @num = 5;
编辑:
然后看起来您的代码块不是存储的程序。正如documentation明确指出:
LIMIT
子句可用于约束行数 由SELECT
声明返回。LIMIT
需要一两个数字 参数,必须都是非负整数常量,用 这些例外:
在准备好的语句中,可以使用?
LIMIT
参数指定?占位符标记。在存储的程序中,可以使用整数值例程参数或局部变量指定
LIMIT
个参数。
因此,您希望在存储过程,用户定义函数,触发器或动态SQL中执行此操作。但是,不允许任何SQL查询。