私がしたいことは、すべての患者に一意の患者コードを1から始まり、行IDに基づいていないように設定することです。 Idは順序を指定するだけです。このような何か:カウントが同じテーブルのMySQL更新値
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 clause。
しかし、私はどのようにCOUNTに必要なサブクエリで動作するように承認された答えを適用するのか分かりません。
これは動作しています。ありがとう。私のソリューションは高速ですが、いくつかの制限もあります –