问下if then的MYSQL语句问题

goldentimecym 2016-03-18 06:06:28
if EXISTS(select 1 from codecontrol where codetype='组织结构') then
update codecontrol set MaxCode=MaxCode+1 where CodeType='组织结构';
ELSE
INSERT into codecontrol(MAXcode,dCloseDate,codetype,othercode) values(1,NOW(),'组织结构','00');
end if;
这句话如果放在mysql的存储过程里面运行没问题
然后在查询里面运行就报错
为啥?
...全文
461 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2016-03-21
  • 打赏
  • 举报
回复
引用
那如何实现在codecontrol 表中存在codetype=‘组织结构’执行修改语句 不存在就执行新增语句呢?
参考MYSQL官方免费手册上的 insert into .. on duplicate update 和 replace语句的说明。
引用
只能才程序里面进行这样的判断么?
是的。如果要用IF THEN则只能在存储语句中或者程序中实现。
goldentimecym 2016-03-21
  • 打赏
  • 举报
回复
那如何实现在codecontrol 表中存在codetype=‘组织结构’执行修改语句 不存在就执行新增语句呢? 只能才程序里面进行这样的判断么?
rick-he 2016-03-19
  • 打赏
  • 举报
回复
那就试下case when
ACMAIN_CHM 2016-03-18
  • 打赏
  • 举报
回复
MYSQL中IF语句仅能在存储过程中使用。

56,677

社区成员

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

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