1. 程式人生 > >MySQL-PREPARE語句

MySQL-PREPARE語句

set 不同 使用 image using 文字 實例 .cn 兩個

MySQL-PREPARE語句

功能介紹:

MySQL準備語句用法

為了使用MySQL準備語句,您需要使用其他三個MySQL語句如下:

  PREPARE - 準備執行的聲明。

  EXECUTE - 執行由PREPARE語句定義的語句。

  DEALLOCATE PREPARE - 發布PREPARE語句。

PREPARE語句使用:

技術分享圖片

PREPARE stmt1 FROM SELECT productCode, productName
                    FROM products
                    WHERE productCode = ?;
SET @pc = S10_1678; EXECUTE stmt1 USING @pc; DEALLOCATE PREPARE stmt1;

第一,使用PREPARE語句準備執行語句。我們使用SELECT語句根據指定的產品代碼從products表查詢產品數據。然後再使用問號(?)作為產品代碼的占位符。

第二,聲明了一個產品代碼變量@pc,並將其值設置為S10_1678

第三,使用EXECUTE語句來執行產品代碼變量@pc的準備語句。

第四,我們使用DEALLOCATE PREPARE來發布PREPARE語句。

實例:

該語句用於在給定了兩個邊的長度時,計算三角形的斜邊。

示例1:顯示如何通過使用文字字符串來創建一個預制語句,以提供語句的文本:

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;

示例2::與示例1相似,不同的是提供了語句的文本,作為一個用戶變量:

mysql> SET @s = SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse;
mysql> PREPARE stmt2 FROM @s;
mysql> SET @a = 6;
mysql> SET @b = 8;
mysql> EXECUTE stmt2 USING @a, @b;
+------------+
| hypotenuse |
+------------+
|     10 |
+------------+
mysql> DEALLOCATE PREPARE stmt2;

示例3:對於已預備的語句,您可以使用位置保持符。

以下語句將從tb1表中返回一行:

mysql> SET @a=1; mysql> PREPARE STMT FROM "SELECT * FROM tbl LIMIT ?"; mysql> EXECUTE STMT USING @a;

以下語句將從tb1表中返回第二到第六行:

mysql> SET @skip=1; SET @numrows=5;
mysql> PREPARE STMT FROM "SELECT * FROM tbl LIMIT ?, ?"; mysql> EXECUTE STMT USING @skip, @numrows;

參考博客:http://www.cnblogs.com/simpman/p/6510604.html

MySQL-PREPARE語句