在 MySQL 中执行字符串:可能吗?
在 MySQL 中,将字符串变量作为查询传递通常会带来挑战,特别是在尝试时动态执行它。与 Microsoft SQL Server 的 EXEC 命令不同,MySQL 缺乏类似的功能。但是,还有另一种方法可以实现此功能。
要在 MySQL 中动态执行字符串,您可以采用以下步骤:
这里是举例说明这个概念:
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;
在此示例中,@queryString 变量是通过连接单独的查询部分。然后执行预备语句 stmt,动态执行 INSERT 操作。执行后,该语句被释放,@asd 变量被设置为 NULL,以避免动态查询产生任何挥之不去的影响。
通过采用这种技术,您可以有效地在 MySQL 中执行字符串,模仿JavaScript 中的 eval() 函数为更加动态和灵活的查询执行提供了可能性。
以上是如何在 MySQL 中执行动态 SQL 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!