错误原因
mysql出现You can’t specify target table for update in FROM clause 这个错误的意思是不能在同一个sql语句中,先select同一个表的某些值,然后再update这个表。
解决方法
select的结果再通过一个中间表select多一次,就可以避免这个错误
DELETE
FROM
message
WHERE
id IN (
SELECT t.connect_id
FROM (
SELECT id AS connect_id
FROM message
WHERE create_time < '2020-04-16 00:00:00' ) t )
注意
只有mysql会有这个问题,mssql与oracle都没有这个问题。