【发布时间】:2021-09-16 18:51:55
【问题描述】:
我正在使用 MySql 5.5.62 输入以下查询,但收到表不可更新的错误消息?
SET @row_number = 0
> OK
> Time: 0,064s
UPDATE `tbl_a` t
JOIN ( SELECT ( @row_number := @row_number + 1 ) pNum,
pDateHour, pPrio, pID FROM `tbl_a` ORDER BY pDateHour ASC ) q ON t.pID = q.pID
SET t.pPrio = q.pNum
> 1288 - The target table q of the UPDATE is not updatable
> Time: 0,068s
我想要实现的是通过添加一个序列列,我可以对我的结果进行排序,而不是在多个列上进行排序。它基于一个涉及 1 列的 ORDER BY 子句。
我需要这个结果
+-------+---------------------+
| pPrio | pDateHour |
+-------+---------------------+
| 1 | 2021-09-16 18:40:02 |
| 2 | 2021-09-16 19:00:20 |
| 3 | 2021-09-16 19:20:47 |
| 4 | 2021-09-16 20:00:59 |
| 5 | 2021-09-16 20:01:48 |
| 6 | 2021-09-16 20:20:31 |
| 7 | 2021-09-16 20:40:05 |
+-------+---------------------+
【问题讨论】:
标签: mysql