2016-05-18 113 views
0

我新的MySQL中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 = '='; 

然後從那裏我可以使用每一部分或取決於參數集調用存儲當在條件語句的查詢或可變procedu內部回覆。

我不知道這是允許的標準做法還是會導致任何性能問題。

回答

1

我相信這與Dynamic SQL類似。

這裏是從MySQL文檔基本如何對基地:

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服務器的,但可能會有一些與mysql類似的信息。