Prawie gotowe.Udało Ci się uzyskać kolejność wstawiania.Tak więc:
select myId, @rowid:[email protected]+1 as myrow from maxID, (SELECT @rowid:=0) as init ORDER BY myrow desc LIMIT 1;
W mojej konsoli otrzymuję następujące informacje:
mysql> select myId, @rowid:[email protected]+1 as myrow from maxID, (SELECT @rowid:=0) as
init ORDER BY myrow desc LIMIT 1;
+------+-------+
| myId | myrow |
+------+-------+
| A003 | 4 |
+------+-------+
1 row in set (0.00 sec)
Demo
AKTUALIZUJ
Jak ma rację. Moje rozwiązanie nie jest deterministyczne. Może to działa dla małej ilości płyt. Znalazłem mnóstwo postów dotyczących zawodności domyślnego sortowania instrukcji SELECT (tu na przykład ).Następne kroki:
- W jakich warunkach domyślne sortowanie SELECT odpowiada kolejności reklamowej?
- Czy jest możliwe uzyskanie ostatniego wstawionego rekordu w tabeli bez dodatkowego identyfikatora lub znacznika czasu wstawienia?
Wiem, że to nie jest odpowiedź, ale określenie problemu ogranicza problem.