使用一个变量mysql不能按预期工作?

使用一个变量mysql不能按预期工作?,mysql,Mysql,它不喜欢下面的限制行。在这种情况下,如何使用变量@row来限制结果集 SELECT @row := 5; SELECT * FROM MyTable limit @row 错误: 意外的“@行” LIMIT子句可用于约束返回的行数 通过SELECT语句。LIMIT接受一个或两个数值参数, 必须同时为非负整数常量 所以 LIMIT子句可用于约束返回的行数 通过SELECT语句。LIMIT接受一个或两个数值参数, 必须同时为非负整数常量 所以 你可以用事先准备好的声明 SET @row = 5;

它不喜欢下面的
限制
行。在这种情况下,如何使用变量
@row
来限制结果集

SELECT @row := 5;
SELECT * FROM MyTable
limit @row
错误:

意外的“@行”

LIMIT子句可用于约束返回的行数 通过SELECT语句。LIMIT接受一个或两个数值参数, 必须同时为非负整数常量

所以

LIMIT子句可用于约束返回的行数 通过SELECT语句。LIMIT接受一个或两个数值参数, 必须同时为非负整数常量

所以


你可以用事先准备好的声明

SET @row = 5;
SET @s = CONCAT('SELECT * FROM MyTable LIMIT ', @row);
PREPARE stmt FROM @s;
EXECUTE stmt;

你可以用事先准备好的声明

SET @row = 5;
SET @s = CONCAT('SELECT * FROM MyTable LIMIT ', @row);
PREPARE stmt FROM @s;
EXECUTE stmt;

您可以在准备好的语句中使用
占位符,也可以在存储的例程中使用整型例程参数或局部变量。但不是没有声明类型的用户变量。您可以在准备好的语句中使用
占位符,也可以在存储的例程中使用整型例程参数或局部变量。但不是没有声明类型的用户变量。