小编Jan*_*n.J的帖子

MySQL使用count更新同一个表中的值

我想要做的是为每个患者设置其唯一的患者代码,该代码以1开头,而不是基于行ID.Id仅指定订单.像这样的东西:

patient_id  patient_code
    2           1
    3           2
    4           3
Run Code Online (Sandbox Code Playgroud)

这是我的查询:

UPDATE patients p1
SET p1.patient_code = (
    SELECT COUNT( * ) 
    FROM patients p2
    WHERE p2.patient_id <= p1.patient_id 
)
Run Code Online (Sandbox Code Playgroud)

但这是错误:

#1093 - You can't specify target table 'p1' for update in FROM clause
Run Code Online (Sandbox Code Playgroud)

我找到了这个帖子:Mysql错误1093 - 无法在FROM子句中指定更新目标表.
但是我不知道如何应用已批准的答案来处理COUNT所需的子查询WHERE.

mysql sql subquery sql-update

7
推荐指数
1
解决办法
8179
查看次数

标签 统计

mysql ×1

sql ×1

sql-update ×1

subquery ×1