我希望在我的存储过程中进行动态查询。SQL Server有一个很好的sp_executesql存储过程来完成这些任务,MySQL是否有类似的功能可以帮助我实现相似的功能?
我希望在我的存储过程中进行动态查询。SQL Server有一个很好的sp_executesql存储过程来完成这些任务,MySQL是否有类似的功能可以帮助我实现相似的功能?
mysql> PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
mysql> SET @a = 3;
mysql> SET @b = 4;
mysql> EXECUTE stmt1 USING @a, @b;
+------------+
| hypotenuse |
+------------+
| 5 |
+------------+
mysql> DEALLOCATE PREPARE stmt1;
您可能需要使用MySQL的预处理语句来实现此目的:
SET @query = 'INSERT INTO tbl (a) VALUES (?)';
PREPARE stmt FROM @query;
...
SET @param = 'hello';
EXECUTE stmt USING @param;
...
DEALLOCATE PREPARE stmt;