mysql,同一张表中,想要用一行数据的值来更新另一行数据例如,要拿行1中的1,2,3更新到行2中,根据前三列的值相等作为条件,简单的sql能不能实现
说实话你这个表真的没看懂!!!
你的大致意思本人理解为用1中的1,2,3把2中的4,5,6代替,也就是先将第一行的后三列的数据查询出来,根据字段名称给第2行数据的后三列进行赋值
update 2 set 2.4 = (select 1.2 from 1 where 2.a =1.a and 2.b = 1.b and 2.c = 1.c),
2.5 = (select 1.3 from 1 where 2.a =1.a and 2.b = 1.b and 2.c = 1.c),
2.6 = (select 1.4 from 1 where 2.a =1.a and 2.b = 1.b and 2.c = 1.c)
where
1.a=2.a
and
1.b=2.b
and
1.c=2.c
我只能说应该不存在这样的场合,拿一条数据去更新另一条数据,还是以非主键列作为判断条件,因为满足该条件的记录可能不止两条。如果只是更新这两条,根据主键查找后更新。