急~~~~~mysql中update语句中如何更新变量,给变量赋值

rwm5366745 2013-08-30 04:27:06
我现在定义了一个表 要合并表中的字段
但mysql 中的写法 和sql server 中的写法不一样
语句:
declare @id int
declare @remark varchar(500)
update 表 set remark=case when @id=id then remark=@remark+";"+remark else remark end,
@id=id,@remark=remark

这样写 在mysql中提示 语发有问题,请问 在mysql 中 应该怎么写
...全文
904 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
EnterMgn 2013-10-11
  • 打赏
  • 举报
回复
我也碰到类似问题,我使用MYSQL5.6+workbench5.2调试存储过程,如果定义成declare id int;可以创建并保持存储过程,但是运行时提示,找不到id字段。如果按上述所说:declare @id int;都无法编译保存,直接说语法有错。 请问有人实际运行过这个脚本吗? 这种编程方法很有用。
ACMAIN_CHM 2013-08-30
  • 打赏
  • 举报
回复
declare @id int; declare @remark varchar(500); update 表 set remark=case when @id=id then concat(@remark,";",remark) else remark end, @id=id,@remark=remark 注意分号; 注意concat 建议下载一份MYSQL官方免费手册以便查看其中的语句规则和例子。
rucypli 2013-08-30
  • 打赏
  • 举报
回复
declare id_1 int; declare remark_1 varchar(500); update 表 set remark=case when id_1=id then remark_1=concat(remark,";",remark) else remark end;
rwm5366745 2013-08-30
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
declare id_1 int; declare remark_1 varchar(500); update 表 set remark=case when id_=id then remark_1=concat(remark,";",remark) else remark end; 上述语句要放在存储过程里才能执行
但会提示 表中没有 id_1 字段
rucypli 2013-08-30
  • 打赏
  • 举报
回复
declare id_1 int; declare remark_1 varchar(500); update 表 set remark=case when id_=id then remark_1=concat(remark,";",remark) else remark end; 上述语句要放在存储过程里才能执行

56,677

社区成员

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

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