请大家帮我看一个可能是字符串赋值的错误

dzogchen 2006-12-28 10:31:37
CREATE PROCEDURE 'substring_pre_map' ()
BEGIN
DECLARE m_unit_map_filename varchar(200);
DECLARE m_str1 int(3);
DECLARE m_str2 int(3);
DECLARE m_flag int(1);
DECLARE cur_title cursor for select unit_map_filename from t_maps_hot;
DECLARE continue handler for not found set m_flag = 1;
open cur_title;
repeat
fetch cur_title into m_unit_map_filename;
begin
m_str1=substring_index(substring_index(m_unit_map_filename,'_',-2),'_',1)+2;
m_str2=substring_index(m_unit_map_filename,'_',-1)+2;
update t_maps_hot set unit_map_filename=concat('pre_map_',m_str1,'_',m_str2) where unit_map_filename=m_unit_map_filename;
end;
until m_flag=1
end repeat;
close cur_title;
end


=============================ERROR============================
错误代码: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=substring_index(substring_index(m_unit_map_filename,'_',-2),'_',1)+2;
m_s' at line 13
(耗费 0 ms)
我的MYSQL是5.1的
...全文
148 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dzogchen 2006-12-28
  • 打赏
  • 举报
回复
贴错了 上面的定义是
DECLARE m_str1 varchar(200);
DECLARE m_str2 varchar(200);

错误是一样的错误
dzogchen 2006-12-28
  • 打赏
  • 举报
回复
update t_maps_hot set unit_map_filename=concat('pre_map_',substring_index(substring_index(unit_map_filename,'_',-2),'_',1)+2,'_',substring_index(unit_map_filename,'_',-1)+2)

原来一句话结束 靠!!!!!!!
dzogchen 2006-12-28
  • 打赏
  • 举报
回复
单独拿substring_index(1232131_423423_23423'_',-1)+2 完全可以执行 为什么写过程中就不可以

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧