gpt4 book ai didi

mysql - 如何在 mysql 服务器中执行动态 SQL 字符串作为查询?

转载 作者:太空宇宙 更新时间:2023-11-03 11:30:20 25 4
gpt4 key购买 nike

我已经创建了一个创建动态查询的触发器。并执行它我已经尝试过“EXECU q”,但它不起作用。我如何运行/执行该动态查询。

BEGIN
DECLARE a INT Default 0 ;
DECLARE str VARCHAR(255);
DECLARE q VARCHAR(500);

SET q = 'insert into '+new.master_name+' values(';

simple_loop: LOOP
SET a=a+1;
SET str = SPLIT_STRING(new.remarks,"|",a);
SET q = CONCAT(q,str+',');
SET q = LEFT(q, LENGTH(q) - 1);
IF str='' THEN
LEAVE simple_loop;
END IF;


END LOOP simple_loop;
SET q = CONCATE(q,');');

EXEC q
END

这是Trigerr这是我做的功能 返回替换( 子字符串( SUBSTRING_INDEX(str , delim , pos) , 字符长度( SUBSTRING_INDEX(str, delim, pos - 1) ) + 1 ), 脱衣舞, '')

最佳答案

我编写了一个存储过程来执行动态构造的 sql 语句。

用法

SET @index := 7;
CALL eval(CONCAT('SELECT ', @index));

实现

DELIMITER $$

CREATE PROCEDURE eval(IN dynamic_statement TEXT)
BEGIN
SET @dynamic_statement := dynamic_statement;
PREPARE prepared_statement FROM @dynamic_statement;
EXECUTE prepared_statement;
DEALLOCATE PREPARE prepared_statement;
END$$

DELIMITER ;

关于mysql - 如何在 mysql 服务器中执行动态 SQL 字符串作为查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50580742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com