3

我想在我的程序中进行动态查询。SQL Server 为此类任务提供了简洁的 sp_executesql 过程,MySQL 中是否有任何东西可以帮助我实现类似的功能?

4

2 回答 2

7

AFAIK 没有什么完全相同的。但是,您可以使用准备好的语句,例如:

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;

从这里复制: http: //dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html

于 2013-08-07T07:12:04.810 回答
3

为此,您可能必须使用 MySQL 使用准备好的语句

SET @query = 'INSERT INTO tbl (a) VALUES (?)';
PREPARE stmt FROM @query;

...
SET @param = 'hello';
EXECUTE stmt USING @param;
...

DEALLOCATE PREPARE stmt;
于 2013-08-07T07:11:54.953 回答