gpt4 book ai didi

MySQL 新列在 SELECT 添加,但值没有增加,存储过程

转载 作者:行者123 更新时间:2023-11-29 02:39:55 27 4
gpt4 key购买 nike

这是一个很长的 SELECT,所以我不会显示整个代码,但问题就在这里:

SET @idcounter=0;
SET @SQL = CONCAT('
CREATE TABLE temp_',CONCAT(InvNum),CONCAT('(
SELECT
'),CONCAT(@idcounter:=@idcounter+1),CONCAT(' as ID,
/* Show Output columns */
/*

它不是 1、2、3 等值,而是到处都只给出 1。所以我尝试了其他解决方案。

SET @SQL = CONCAT('SET ',CONCAT(@idcounter=0),CONCAT(';
CREATE TABLE temp_',CONCAT(InvNum),CONCAT('(
SELECT
'),CONCAT(@idcounter:=@idcounter+1),CONCAT(' as ID,
/* Show Output columns */
/*

但这给出了错误:错误代码:1064。您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行 0.015 秒处的“NULL”附近使用的正确语法

老实说,我不知道该如何处理这个问题。我错过了什么?

“InvNum”是一个工作参数,这不是问题所在。

最佳答案

问题是由于使用

引起的
CONCAT('(SELECT '), CONCAT(@idcounter:=@idcounter+1)

这会导致 SELECT 语句在执行时插入 @idcounter 变量值,而不是您希望的每个 SELECT 行。

@SQL 设置为:

CREATE TABLE temp_123 
SELECT 1 as ID

您只需删除多余的CONCAT() 调用即可。

SET @idcounter=0;
SET @SQL=CONCAT('
CREATE TABLE temp_',InvNum, '
SELECT @idcounter:=@idcounter+1 as ID')

@SQL 设置为:

CREATE TABLE temp_123 
SELECT @idcounter:=@idcounter+1 as ID

关于MySQL 新列在 SELECT 添加,但值没有增加,存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54818155/

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