SQL 用update语句一次更新同个字段的多个字段值,应该怎么写

coderInCsdn 2018-10-01 03:18:35
表food_table结构和数据如下:




现在想将company字段值,改为“咖啡厂”“奶糖厂”,可以这样写:

UPDATE food_table set company='咖啡厂' where name='咖啡';
UPDATE food_table set company='奶糖厂' where name='奶糖';


但请问各位网友,如何仅用一条语句实现呢?

例如:
UPDATE food_table set company='咖啡厂' where name='咖啡', set company='奶糖厂' where name='奶糖';
【测试失败...】

...全文
6894 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang0112233 2019-02-15
  • 打赏
  • 举报
回复
我想楼主的意思是要替换吧,并不是只是添加字符串
DAVE-BLACK 2018-10-20
  • 打赏
  • 举报
回复
update xxxxx set name = company||厂不就这个意思么手机打的
coderInCsdn 2018-10-04
  • 打赏
  • 举报
回复
多谢坛友“砸死牛顿的苹果”和“吉普赛的歌”,帮助我把问题解决了! 谢谢你们! (PS:第一次在CSDN提问,受到你们的帮助,同时也发现我提问的不足,以后会改进,同时也会尽所能帮助他人,谢谢。)
吉普赛的歌 版主 2018-10-03
  • 打赏
  • 举报
回复
UPDATE food_table set company=concat(name,'厂') where  company <> concat(name,'厂');
  • 打赏
  • 举报
回复
UPDATE food_table set company=concat(name,'厂') where company not like '%厂';
coderInCsdn 2018-10-02
  • 打赏
  • 举报
回复
引用 1 楼 ayalicer 的回复:
如果你是 mssql: UPDATE food_table set company=name+'厂'; mysql: UPDATE food_table set company=concat(name,'厂');
谢谢你的回答! 首先补充说明一下,我是用MySQL。 然后,想说你的做法让我想到我的提问的漏洞其实我更想问的是: 如果表的情况换成如下: 如何一次性,将company字段值,改为“咖啡厂”“奶糖厂”,但不能修改原来就正确的字段值? (如,第3条记录中的company字段值“水果厂”,不需要修改。)
  • 打赏
  • 举报
回复
如果你是 mssql:
UPDATE food_table set company=name+'厂';
mysql:

UPDATE food_table set company=concat(name,'厂');

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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