Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pobieranie ostatniego rekordu z mysql

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuwanie z tabeli MySQL z ograniczeniami klucza obcego

  2. Obliczanie średniej ruchomej MySQL?

  3. Tabela [nazwa tabeli] nie jest zablokowana

  4. Jak celowo zablokować wiersz MySQL tak, że nawet SELECT zwróci błąd?

  5. Jak zablokować wiersz do wyboru w MySQL?