有个question表,存放用户反馈的问题,用户的追问(子问题)也是一条新的记录通过一个字段root表示根问题。
现在加了一个字段最后追问的时间(examing_time)。需要通过sql初始化这个字段。
自然的写出了这样的update语句:
UPDATE question q1 SET q1.examing_time = (SELECT MAX (q2.`submit_time`) FROM question q2 WHERE q1.`root` = q2.`id` );
mysql不支持子查询更新,上面的sql无法正确执行。
使用临时表破了:
UPDATE question q1 INNER JOIN (SELECT root,MAX(submit_time) max_time FROM question WHERE root <> 0 GROUP BY `root`) q2 ON q2.root = q1.`id` SET q1.`examing_time`=q2.max_time;