我想要做的是为每位患者设置其唯一的患者代码,该代码以 1 开头,并且不基于行 ID。Id 仅指定顺序。像这样的东西:
patient_id patient_code
2 1
3 2
4 3
这是我的查询:
UPDATE patients p1
SET p1.patient_code = (
SELECT COUNT( * )
FROM patients p2
WHERE p2.patient_id <= p1.patient_id
)
但它抛出错误:
#1093 - You can't specify target table 'p1' for update in FROM clause
我找到了这个线程:Mysql error 1093 - Can't specify target table for update in FROM 子句。
但我不知道如何应用批准的答案来处理 COUNT 所必需的子查询 WHERE。