表table如下:
但在我的mysql数据库测试半天都不成功。后面在网上看到说mysql 不支持 update 子查询更新。
将对table的别名a,b放到了前面。前几天发现mysql的gruop by的说明是返回唯一值,返回的结果集是删除了重复项。但sybase里面却行不通。纠结。
id | code | name |
1 | c1 | null |
2 | c1 | c1name |
3 | c2 | null |
4 | c2 | c2name |
5 | c3 | c3name |
6 | c4 | null |
要求:把table里面对于相同的code的null值用不为null的值赋值。
例:id=1和id=2的code值一样,把id=1的name,update为id为2的name值.
在系统sybase里面用下面的sql语句,可以测试成功:
update a set a.name= b.name
from table a,tabel b
where a.code = b.code and a.name is null and b.name is not null
但在我的mysql数据库测试半天都不成功。后面在网上看到说mysql 不支持 update 子查询更新。
新语句如下:
update table a inner join table b
on a.code=b. code
set a. name =b. name
where a. code is not null and b.i name is not null
将对table的别名a,b放到了前面。前几天发现mysql的gruop by的说明是返回唯一值,返回的结果集是删除了重复项。但sybase里面却行不通。纠结。