我是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 = '=';
然后从那里我可以在条件语句中使用每个部分或查询或变量,具体取决于调用存储过程时的参数集。
我想知道这是否允许作为标准做法,还是会导致任何性能问题。
答案 0 :(得分:1)
我认为这与Dynamic SQL类似。
以下是MySQL Docs的基本操作方法基础:
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可能会有类似的信息。