语法: spexecutesql SQL语句 [, 参数列表] 说明: spexecutesql方法接受两个参数。第一个参数是SQL语句,可以是一个字符串变量或者一个字符串常量。 第二个参数是可选的,用于提供SQL语句中使用的参数值,它是一个由参数名和参数值组成的键值对集合。 spexecutesql方法会在运行时动态生成SQL语句,并将参数值替换为参数名。
下面是一个使用spexecutesql方法的示例代码:
CREATE PROCEDURE getUserById (IN userId INT) BEGIN DECLARE sql_cmd VARCHAR(200); SET sql_cmd = 'SELECT * FROM users WHERE id = ?'; SET @param = userId; PREPARE stmt FROM sql_cmd; EXECUTE stmt USING @param; DEALLOCATE PREPARE stmt; END;
在上述代码中,使用了spexecutesql方法动态生成了一条SQL查询语句,其中的参数值由userId参数提供。通过执行PREPARE语句将动态生成的SQL语句编译成用于MySQL服务器内部执行的一个执行计划,并使用EXECUTE语句执行编译后的执行计划。最后,使用DEALLOCATE PREPARE语句释放资源。