-- 同一个表
UPDATE table_a SET A=(SELECT B FROM (SELECT * FROM table_a) b WHERE b.id = table_a.id)
-- 两个表
UPDATE table_a SET A = (SELECT B FROM table_b WHERE table_b.ID= table_a.ID)
-- UPDATE message SET image=(SELECT istatus FROM (SELECT * FROM message) b WHERE b.id = message.id)
转载自:lzxomg的博客
分析如下:
将table_a 中的A字段设置成新值就不多说了,关键的是将table_a中所有数据查找出来作为一个临时表,再从这张临时表里查找出B字段数据,查询条件是临时表id等于原表ID。