将字符串作为动态查询执行可能是数据库编程中的一项有用技术。在 MySQL 中,无法通过 EXEC 或 EXECUTE 等直接方法使用此功能。但是,有一个使用 PREPARE 和 EXECUTE 语句的解决方法。
要在 MySQL 中将字符串作为查询执行,您可以使用以下步骤:
PREPARE stmt FROM 'INSERT INTO table_name (column1, column2) VALUES (?, ?)';
SET @value1 = 'value1'; SET @value2 = 'value2';
EXECUTE stmt USING @value1, @value2;
DEALLOCATE PREPARE stmt;
示例:
以下示例演示如何动态执行查询以插入多行放入表中:
SET @queryString = ( SELECT CONCAT('INSERT INTO user_group (`group_id`,`user_id`) VALUES ', www.vals) as res FROM ( SELECT GROUP_CONCAT(qwe.asd SEPARATOR ',') as vals FROM ( SELECT CONCAT('(59,', user_id, ')') as asd FROM access WHERE residency = 9 ) as qwe ) as www ); PREPARE stmt FROM @queryString; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @asd = NULL;
此示例查询数据库中的用户 ID 和组 ID 列表,构建动态查询字符串,用于将这些值插入到 user_group 表中,然后执行动态查询。
以上是如何使用 PREPARE 和 EXECUTE 在 MySQL 中执行动态查询?的详细内容。更多信息请关注PHP中文网其他相关文章!