我有以下准备语句,其中我保留了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
您能帮助我找出问题所在,如何才能得到理想的结果?
答案 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";