插入数据库,主键重复时,取原来的值

fs08ab 2018-04-13 05:45:32
表t_a(c1,c2) c1为主键
insert into t_a(c1,c2)
select c1,'1' from t_other
on duplicate key update c2 = concat(values(c2), ‘1’);

这样的sql,当出现主键重复时,values(c2)取不到原来的值,c2被更新成‘11’,即values(c2)取到的是insert操作后的值‘1’;

请各位帮忙看一下,这个更新怎么取到原来的值。
...全文
967 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fs08ab 2018-04-16
  • 打赏
  • 举报
回复
自己研究了一下,自问自答吧,怪自己学艺不精,不用values()就可以了
fs08ab 2018-04-13
  • 打赏
  • 举报
回复
补充一下,是mysql数据库,求教各位大神,这种情况是正常的吗,还是说数据库设置有问题,或者我的写法有问题?

56,677

社区成员

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

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