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 prepared

mysql>
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>
相关推荐
泊浮目2 分钟前
未来数据库硬件-网络篇
数据库·架构·云计算
vocal3 分钟前
【我的安卓第一课】Android 多线程与异步通信机制(1)
android
顾林海4 分钟前
ViewModel 销毁时机详解
android·面试·android jetpack
静若繁花_jingjing16 分钟前
Redis线程模型
java·数据库·redis
叁沐1 小时前
MySQL 07 行锁功过:怎么减少行锁对性能的影响?
mysql
Java烘焙师2 小时前
架构师必备:业务扩展模式选型
mysql·elasticsearch·架构·hbase·多维度查询
恋猫de小郭2 小时前
Google I/O Extended :2025 Flutter 的现状与未来
android·前端·flutter
飞翔的佩奇2 小时前
Java项目:基于SSM框架实现的忘忧小区物业管理系统【ssm+B/S架构+源码+数据库+毕业论文+开题报告】
java·数据库·mysql·vue·毕业设计·ssm框架·小区物业管理系统
@Ryan Ding2 小时前
MySQL主从复制与读写分离概述
android·mysql·adb
移动开发者1号3 小时前
Android 同步屏障(SyncBarrier)深度解析与应用实战
android·kotlin