MySQL-update mit dem Wert aus der gleichen Tabelle mit Zählung
Was ich will zu tun ist, um jedem Patienten seine einzigartige Patienten-code, der beginnt mit 1, und es ist nicht auf der Grundlage der Zeilen-id. Id angibt, in Ordnung. So etwas wie dieses:
patient_id patient_code
2 1
3 2
4 3
Dies ist meine Abfrage:
UPDATE patients p1
SET p1.patient_code = (
SELECT COUNT( * )
FROM patients p2
WHERE p2.patient_id <= p1.patient_id
)
Aber es wirft Fehler:
#1093 - You can't specify target table 'p1' for update in FROM clause
Ich diesen thread gefunden: Mysql error 1093 - Können nicht geben Sie Zieltabelle for update in FROM-Klausel.
Aber ich weiß nicht, wie sich zu bewerben zugelassen beantworten Sie diese arbeiten mit Unterabfrage, WO die notwendig ist für die ZÄHLUNG.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich funktionierende Lösung, aber das ist nur Problemumgehung:
ORDER BY patient_id
(MySQL ermöglicht die BESTELLUNG VON in Sie ein UPDATE ohne joins).Versuchen, diese,
SQL_LIVE_DEMO