mysql - 插入/更新字符串值而不用引号

问题描述

我创建了一个循环遍历表并将结果连接到变量中的例程。该变量稍后与 PREPARE 和 EXECUTE 一起使用以一次性插入一堆行。

BEGIN

    DECLARE fetched_name VARCHAR(32);

    DECLARE loop_finished TINYINT(1) UNSIGNED DEFAULT 0;
    DECLARE loop_cursor CURSOR FOR SELECT name FROM first_example_table;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET loop_finished = 1;

    SET @insert_entry = NULL;

        OPEN loop_cursor;

            looping: LOOP

                FETCH loop_cursor INTO fetched_name;
    
                    IF
                    loop_finished = 1
                    THEN
    
                        LEAVE looping;
    
                    END IF;
    
                SET @insert_list = CONCAT_WS("),(",@insert_list,fetched_name);

            END LOOP;

        CLOSE loop_cursor;

    SET @insert_list = CONCAT("INSERT INTO second_example_temple (name) VALUES (",")");

    PREPARE insert_query FROM @insert_list;
    EXECUTE insert_query;

END

到目前为止,这实际上可以按预期工作。然而,问题是准备好的查询包含没有引号的值,如下所示:

INSERT INTO second_example_temple (name) VALUES (Bill),(Peter),(Tom);

MySQL 拒绝查询缺少的引号,它希望查询看起来像这样:

INSERT INTO second_example_temple (name) VALUES ("Bill"),("Peter"),("Tom");

这个问题有什么好的解决方法吗?理想情况下没有手动设置引号并且没有使用 CONCAT 或 CONCAT_WS,因为在名称旁边设置更多字段时这会变得非常复杂。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)