【问题标题】:MySQL Stored Procedure Setting VariableMySQL 存储过程设置变量
【发布时间】:2016-05-18 10:42:44
【问题描述】:

我是 MySQL 存储过程的新手

我想知道例如我是否有一个查询,然后我将其划分为变量,例如

SELECT A, B, C, FROM TABLE123 WHERE A = '123'

然后我把它分成存储过程里面的变量

SET @select = 'SELECT';
SET @column1= 'A';
SET @column2 = 'B';
SET @column3 = 'C';
SET @parameter = 'WHERE';
SET @equal = '=';

然后我可以根据调用存储过程时的参数集在条件语句中使用每个部分或查询或变量。

我想知道这是否被允许作为标准做法,还是会导致任何性能问题。

【问题讨论】:

    标签: mysql stored-procedures


    【解决方案1】:

    我相信这类似于Dynamic SQL

    这是 MySQL Docs 中的基本 how-to 基础:

    PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
    SET @a = 3;
    SET @b = 4;
    EXECUTE stmt1 USING @a, @b;
    DEALLOCATE PREPARE stmt1;
    
    +------------+
    | hypotenuse |
    +------------+
    |          5 |
    +------------+
    

    这是一篇由 SQL Server MVP 撰写的关于 The Curse and Blessings of Dynamic SQL 的精彩文章,您可能想阅读。虽然这是针对 sql server 的,但对于 mysql 可能有一些类似的信息。

    【讨论】:

      猜你喜欢
      • 2022-01-26
      • 2012-04-09
      • 2011-10-26
      • 2011-06-06
      • 2010-12-18
      • 2014-04-18
      • 1970-01-01
      • 2012-06-20
      相关资源
      最近更新 更多