sql >> Database >  >> RDS >> Mysql

Laatste record ophalen van mysql

Bijna klaar. Je slaagt erin om de invoegopdracht te krijgen. Dus:

select myId, @rowid:[email protected]+1 as myrow from maxID, (SELECT @rowid:=0) as init ORDER BY myrow desc LIMIT 1;

In mijn console krijg ik het volgende:

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

UPDATE

Jak heeft gelijk. Mijn oplossing is niet deterministisch. Misschien werkt het voor een klein aantal records. Ik vond tonnen berichten over onbetrouwbaarheid van standaardsortering van een SELECT-instructie (hier bijvoorbeeld ).Volgende stappen:

  • Onder welke voorwaarden komt de standaard SELECT-sortering overeen met de invoegvolgorde?
  • Is het mogelijk om het laatst ingevoegde record in een tabel te verkrijgen zonder een incrementele id of een invoegtijdstempel?

Ik weet dat het geen antwoord is, maar door het probleem te stellen, beperk ik het probleem.



  1. SQL:hoe vind je duplicaten op basis van twee velden?

  2. MySQL op dubbele sleutel... bestaande ID krijgen?

  3. Is substr of LIKE sneller in Oracle?

  4. Heeft iemand ontdekt dat REGEX \b niet werkt in MYSQL?