mysql prepare statement
在 MySQL 中,PREPARE 和 EXECUTE 语句可以用来执行预编译的 SQL 语句。然而,MySQL 的语法略有不同于你提供的示例。
以下是在 MySQL 中正确使用 PREPARE 和 EXECUTE 的示例:
-- Prepare the statement
PREPARE stmt FROM 'SELECT * FROM bigtable WHERE name =?';-- Execute the prepared statement with a parameter
SET @name = 'John';
EXECUTE stmt USING @name;-- Drop the prepared statement
DEALLOCATE PREPARE stmt;
在这个示例中,我们首先使用 PREPARE 语句来准备一个带有参数的 SQL 语句。然后,我们使用 SET 语句来设置参数的值,并使用 EXECUTE 语句来执行预编译的 SQL 语句。最后,我们使用 DEALLOCATE PREPARE 语句来释放预编译的语句。
注意,MySQL 不支持使用 USING 关键字直接传递参数值,而是需要先将参数值设置到一个变量中,然后在 EXECUTE 语句中引用这个变量。
示例:
mysql> PREPARE stmt FROM 'SELECT * FROM bigtable WHERE name =?';
Query OK, 0 rows affected (0.00 sec)
Statement preparedmysql>
mysql> SET @name = 'Jone1829488e9aaaa';
Query OK, 0 rows affected (0.00 sec)mysql> EXECUTE stmt USING @name;
+----+-------------------+------+--------------------+
| id | name | age | email |
+----+-------------------+------+--------------------+
| 1 | Jone1829488e9aaaa | 38 | test1@baomidou.com |
+----+-------------------+------+--------------------+
1 row in set (3.84 sec)mysql>
mysql> DEALLOCATE PREPARE stmt;
Query OK, 0 rows affected (0.00 sec)mysql>