Co chcę zrobić, to ustawić dla każdego pacjenta jego unikalny kod pacjenta, który zaczyna się od 1 i nie jest oparty na identyfikatorze wiersza. Id określa tylko kolejność. Coś takiego:Wartość aktualizacji MySQL z tej samej tabeli z liczbą
patient_id patient_code
2 1
3 2
4 3
To moje zapytanie:
UPDATE patients p1
SET p1.patient_code = (
SELECT COUNT(*)
FROM patients p2
WHERE p2.patient_id <= p1.patient_id
)
Ale to jest rzucanie błąd:
#1093 - You can't specify target table 'p1' for update in FROM clause
Znalazłem ten wątek: Mysql error 1093 - Can't specify target table for update in FROM clause.
Ale nie wiem, jak zastosować zatwierdzoną odpowiedź, aby działała z podzapytaniem GDZIE jest to konieczne dla COUNT.
To działa. Dzięki. Moje rozwiązanie jest szybsze, ale ma również pewne ograniczenia –