您没有指定数据库。以下是标准SQL:
UPDATe t SET TEXT = (SELECT text FROM t t2 WHERe t.id = t2.id AND LANG ='EN' ANDTEXT IS NOT NULL ) WHERe TEXT IS NULL;
如果出现重复,则应执行以下操作:
UPDATe t SET TEXT = (SELECT max(text) FROM t t2 WHERe t.id = t2.id AND LANG ='EN' ANDTEXT IS NOT NULL ) WHERe TEXT IS NULL;
编辑:
当然,并非所有数据库都支持所有ANSI标准功能。在MySQL中,您可以
join改用:
UPDATe t JOIN (SELECT id, max(text) as text_en FROM t t2 WHERe LANG ='EN' AND TEXT IS NOT NULL ) ten ON t.id = ten.id SET t.TEXT = ten.text_en WHERe t.TEXT IS NULL;



