MySQL服务器支持准备好的语句,当我们想运行许多只在很小的细节上有所不同的查询时,这很有用。我们可以准备一条语句,然后多次使用不同的数据值执行该语句。基本上,MySQL中的预备语句利用了客户端/服务器二进制协议。准备好的语句提供了增强的性能,因为服务器仅对完整的语句进行了解析。
以下是在MySQL中使用准备好的语句的步骤-
这是我们将使用PREPARE语句准备语句的第一步。例如,以下是使用“投标”表中的数据准备的语句-
PREPARE stmt FROM ‘Select tender_value from Tender Where Companyname = ?;’
这是第二步,我们将执行使用“ PREPARE”语句准备的语句。例如,我们将使用以下语法执行准备好的语句stmt-
EXECUTE stmt USING @variable_name;
在这里,@variable_name将具有我们希望tp传递的值?在PREPARE语句中。在执行准备好的语句之前,我们需要使用SET语句设置@variable_name的值。
这是我们将在DEALLOCATE语句的帮助下释放准备好的语句的最后一步。例如,我们将在以下语法的帮助下释放准备好的语句stmt-
DEALLOCATE PREPARE stmt;
以下是查询,在这些查询的帮助下,我们运行了准备好的语句-
mysql> PREPARE stmt FROM 'SELECT tender_value from Tender WHERE Companyname = ?'; Statement prepared mysql> SET @A = 'Singla Group.'; mysql> EXECUTE stmt using @A; +--------------+ | tender_value | +--------------+ | 220.255997 | +--------------+ 1 row in set (0.07 sec) mysql> DEALLOCATE PREPARE stmt;