MySQL 服務(wù)器支持準(zhǔn)備好的語句,當(dāng)我們想要運(yùn)行許多僅在很小的細(xì)節(jié)上有所不同的查詢時(shí),這非常有用。我們可以準(zhǔn)備一個(gè)語句,然后多次執(zhí)行它,并且每次使用不同的數(shù)據(jù)值。基本上,MySQL 中的準(zhǔn)備語句利用客戶端/服務(wù)器二進(jìn)制協(xié)議。準(zhǔn)備好的語句可以提供增強(qiáng)的性能,因?yàn)榉?wù)器只解析一條完整的語句。
以下是在 MySQL 中使用準(zhǔn)備好的語句的步驟 –
準(zhǔn)備語句
這是我們使用 PREPARE 語句準(zhǔn)備語句的第一步。例如,以下是使用“Tender”表中的數(shù)據(jù)編寫的報(bào)表 –
示例
PREPARE stmt FROM ‘Select tender_value from Tender Where Companyname = ?;’
登錄后復(fù)制
執(zhí)行 PREPARED 語句
?這是我們將執(zhí)行的第二步使用“PREPARE”語句準(zhǔn)備的語句。例如,我們將使用以下語法執(zhí)行準(zhǔn)備好的語句 stmt –
示例
EXECUTE stmt USING @variable_name;
登錄后復(fù)制
這里 @variable_name 將具有我們希望在 ? 處傳遞的值。在 PREPARE 語句中。在執(zhí)行prepared語句之前,我們需要使用SET語句設(shè)置@variable_name的值。
DEALLOCATE PREPARED語句
這是最后一步,我們將在 DEALLOCATE 語句的幫助下釋放準(zhǔn)備好的語句。例如,我們將借助以下語法來釋放準(zhǔn)備好的語句 stmt –
示例
DEALLOCATE PREPARE stmt;
登錄后復(fù)制
以下是我們運(yùn)行準(zhǔn)備好的語句的查詢 –
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)
登錄后復(fù)制
以上就是我們?nèi)绾卧?MySQL 中使用準(zhǔn)備好的語句?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!