从执行准备语句结果

时间:2016-05-26 05:28:05

标签: mysql

我有以下准备语句,其中我保留了limit子句变量 -

PREPARE fooStmt FROM "SELECT id FROM Table_1 ORDER BY id LIMIT ?";

我定义了一个变量@record -

SET @record = 4;

现在我使用上面的变量来执行预准备语句 -

EXECUTE fooStmt USING @record;

我得到以下结果 -

+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
|  4 |
+----+

现在我的问题是我想要上述结果的最大ID。 我尝试了以下查询来获得所需的结果,但它给了我SQL语法错误:

select max(id) from (EXECUTE fooStmt USING @record);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING @record)' at line 1

您能帮助我找出问题所在,如何才能得到理想的结果?

2 个答案:

答案 0 :(得分:1)

请试试这个:

PREPARE fooStmt
FROM "SELECT max(id) AS id FROM ( SELECT id FROM frameThreshold ORDER BY id LIMIT ? ) AS id";     

答案 1 :(得分:0)

如果你需要,你应该(重新)准备sql

 "select max(id) from 
         (SELECT id FROM Table_1 ORDER BY id LIMIT ?) as t";

然后

 PREPARE your_maxFooStmt FROM  "select max(id) from 
         (SELECT id FROM Table_1 ORDER BY id LIMIT ?) as t";
相关问题