MySQL 服務器支持準備好的語句,當我們想要運行許多僅在很小的細節上有所不同的查詢時,這非常有用。我們可以準備一個語句,然后多次執行它,并且每次使用不同的數據值。基本上,MySQL 中的準備語句利用客戶端/服務器二進制協議。準備好的語句可以提供增強的性能,因為服務器只解析一條完整的語句。
以下是在 MySQL 中使用準備好的語句的步驟 –
準備語句
這是我們使用 PREPARE 語句準備語句的第一步。例如,以下是使用“Tender”表中的數據編寫的報表 –
示例
PREPARE stmt FROM ‘Select tender_value from Tender Where Companyname = ?;’
登錄后復制
執行 PREPARED 語句
?這是我們將執行的第二步使用“PREPARE”語句準備的語句。例如,我們將使用以下語法執行準備好的語句 stmt –
示例
EXECUTE stmt USING @variable_name;
登錄后復制
這里 @variable_name 將具有我們希望在 ? 處傳遞的值。在 PREPARE 語句中。在執行prepared語句之前,我們需要使用SET語句設置@variable_name的值。
DEALLOCATE PREPARED語句
這是最后一步,我們將在 DEALLOCATE 語句的幫助下釋放準備好的語句。例如,我們將借助以下語法來釋放準備好的語句 stmt –
示例
DEALLOCATE PREPARE stmt;
登錄后復制
以下是我們運行準備好的語句的查詢 –
mysql> PREPARE stmt FROM 'SELECT tender_value from Tender WHERE Companyname = ?'; Query OK, 0 rows affected (0.09 sec) Statement prepared mysql> SET @A = 'Singla Group.'; Query OK, 0 rows affected (0.00 sec) mysql> EXECUTE stmt using @A; +--------------+ | tender_value | +--------------+ | 220.255997 | +--------------+ 1 row in set (0.07 sec) mysql> DEALLOCATE PREPARE stmt; Query OK, 0 rows affected (0.00 sec)
登錄后復制
以上就是我們如何在 MySQL 中使用準備好的語句?的詳細內容,更多請關注www.92cms.cn其它相關文章!