SQL update 怎么写,类似于程序里的循环条件

EMMET_C 2013-12-28 08:02:30
数据表;table

id price itemid
1, 0, A000010100HA
2, 0, A000010200HA
3, 500, A000010101HA
4, 600, A000010201HA

上面是表数据,如何将 id 3 的price 更新到 1的price
更新后的结果是
A000050301HA
id price itemid
1, 500, A000010100HA
2, 600, A000010200HA
3, 500, A000010101HA
4, 600, A000010201HA

他们的条件是itemid的条件是 itemId前8位算一条数据,比如id 1和id 3 就是一条数据,就需要把id 3的price 更新到 id 1的price
这样的算为相同数据
id 1 A000010100HA == A000010101HA id 3
就是把01的price 更新到 00 的price去



自己写了1个多小时,没弄出来,各位大神支支招,开始用程序循环的,当带价有点高
...全文
175 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2013-12-30
  • 打赏
  • 举报
回复
UPDATE ttz a INNER JOIN (SELECT `itemid`,price FROM ttz WHERE price>0) b ON LEFT(a.`itemid`,8)=LEFT(b.`itemid`,8) SET a.`price`=b.`price` WHERE a.price=0;
ACMAIN_CHM 2013-12-28
  • 打赏
  • 举报
回复
update 数据表 u, (select left( itemid,8) as i ,max(price) as mp from 数据表 group by left( itemid,8)) v set u.price=v.mp where u.price=0 and left(u.itemid,8)=v.i

56,687

社区成员

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

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