MySQL-PREPARE語句
阿新 • • 發佈:2018-01-01
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語句