1. 程式人生 > >sql學習之:mysql裡關於update from

sql學習之:mysql裡關於update from

表table如下:
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裡面卻行不通。糾結。