分析原因
在MySQL中,可能会遇到You can't specify target table '表名' for update in FROM clause这样的错误
它的意思是说,不能在同一语句中,先select出同一表中的某些值,再update这个表,即不能依据某字段值做判断再来更新某字段的值。
这个问题在MySQL官网中有提到解决方案:MySQL-UPDATE- 拉到文档下面
例如下面这张t_message表
+----+-----+-----------+---------------------+
| id | uid | content | addtime |
+----+-----+-----------+---------------------+
| 1 | 1 | content1 | 2022-04-26 00:00:01 |
| 2 | 2 | content2 | 2022-04-26 00:00:02 |
| 3 | 3 | content3 | 2022-04-26 00:00:03 |
| 4 | 1 | content4 | 2022-04-26 00:00:04 |
| 5 | 3 | content5 | 2022-04-26 00:00:05 |
| 6 | 2 | content6 | 2022-04-26 00:00:06 |
| 7 | 2 | content7 | 2022-04-26 00:00:07 |
| 8 | 4 | content8 | 2022-04-26 00:00:08 |
| 9 | 4 | content9 | 2022-04-26 00:00:09 |
| 10 | 1 | conte