【问题标题】:mysql Unknown column variable in the field listmysql 字段列表中的未知列变量
【发布时间】:2012-08-31 13:14:29
【问题描述】:

我正在尝试编写一个程序来接受受害者及其人数。victims 参数将包含像这样的值 '123,321,222' 我正在使用一个函数 调用SPLIT_STR_FUNCTION 将文本拆分为逗号分隔值。然后我 将在数据库中插入每个值。

这是我的程序:

CREATE DEFINER=`root`@`localhost` PROCEDURE `InsertPost`( in pmsg text, in pthumbPath text, in ppath text, in puserid bigint, in count int, in victims text) 
BEGIN 
INSERT INTO posts(path,thumbpath,msg,userid) VALUES(ppath,pthumbpath,pmsg,puserid);


SET @lastpostid = (SELECT postid FROM posts ORDER BY postid DESC LIMIT 1);

SET @startindex=1;

WHILE @startindex <= count DO 
SET @IndividualIDs=convert((select SPLIT_STR_Function(victims, ',', @startindex)),signed); 
SET @startindex=startindex+1;     
INSERT INTO victims(victimid,postid) VALUES(@IndividualIDs,@lastpostid); 

end WHILE; 
END

错误: 字段列表中的未知列 startindex

SPLIT_STR_FUNCTION:(来自here

CREATE DEFINER=`root`@`localhost` FUNCTION `SPLIT_STR_Function`(
x VARCHAR(255),
delim VARCHAR(12),
pos INT
 ) 

 RETURNS varchar(255) CHARSET latin1
 RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
    LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
    delim, '')

【问题讨论】:

  • thnx 我在这个愚蠢的错误上浪费了几个小时。 :)

标签: mysql


【解决方案1】:

当您增加用户变量 @startindex 时,它缺少它的 @

SET @startindex=startindex+1;
-- Should be:
SET @startindex = @startindex+1;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    相关资源
    最近更新 更多