【问题标题】:Is there an procedure in MySQL similar to sp_executesql in SQL Server?MySQL 中是否有类似于 SQL Server 中的 sp_executesql 的过程?
【发布时间】:2013-08-08 10:31:49
【问题描述】:

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

【问题讨论】:

  • this 是您要找的吗?

标签: mysql sql-server dynamic-sql sp-executesql


【解决方案1】:

您可能必须使用 prepared statements 来使用 MySQL:

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

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

DEALLOCATE PREPARE stmt;

【讨论】:

    【解决方案2】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      相关资源
      最近更新 更多