sql >> Databasteknik >  >> RDS >> Mysql

Hämta sista posten från mysql

Nästan klar. Du lyckas få insättningsordningen. Så:

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

I min konsol får jag följande:

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

UPPDATERA

Yak har rätt. Min lösning är inte deterministisk. Kanske fungerar det för små mängder poster. Jag hittade massor av inlägg om opålitlighet i standardsortering av ett SELECT-uttryck (här till exempel ).Nästa steg:

  • Under vilka förhållanden matchar standard SELECT-sortering insättningsordningen?
  • Är det möjligt att få den senast infogade posten i en tabell utan ett inkrementellt id eller en infogningstidstämpel?

Jag vet att det inte är ett svar, men att ange problemet begränsar problemet.



  1. Hur SUBSTRING() fungerar i MariaDB

  2. Migrera en Oracle-databas från AWS EC2 till AWS RDS, del 4

  3. Hur RPAD() fungerar i MariaDB

  4. Hur man byter databas med PostgreSQL