您可以使用ORDER BY获得MySQL表中的最后一个条目。第一种方法如下:
情况1:使用DESC LIMIT
SELECT * FROM yourTableName ORDER BY yourColumnName DESC LIMIT 1;
第二种方法如下:
情况2:使用MAX()
SET @anyVariableName = (SELECT MAX(yourColumnName) FROM yourTableName); SELECT *FROM yourtableName WHERE yourColumnName = @anyVariableName;
现在要了解这两种方法,让我们创建一个表。创建表的查询如下:
mysql> create table lastEntryDemo -> ( -> Id int NOt NULL AUTO_INCREMENT, -> Name varchar(30), -> Age int, -> PRIMARY KEY(Id) -> );
使用insert命令在表中插入一些记录。查询如下:
mysql> insert into lastEntryDemo(Name,Age) values('Larry',24); mysql> insert into lastEntryDemo(Name,Age) values('John',21); mysql> insert into lastEntryDemo(Name,Age) values('David',22); mysql> insert into lastEntryDemo(Name,Age) values('Bob',25); mysql> insert into lastEntryDemo(Name,Age) values('Carol',29); mysql> insert into lastEntryDemo(Name,Age) values('Mike',23); mysql> insert into lastEntryDemo(Name,Age) values('Sam',20);
使用select语句显示表中的所有记录。查询如下:
mysql> select *from lastEntryDemo;
以下是输出:
+----+-------+------+ | Id | Name | Age | +----+-------+------+ | 1 | Larry | 24 | | 2 | John | 21 | | 3 | David | 22 | | 4 | Bob | 25 | | 5 | Carol | 29 | | 6 | Mike | 23 | | 7 | Sam | 20 | +----+-------+------+ 7 rows in set (0.00 sec)
这是使用ORDER BY获取最后一个条目的查询。
情况1:DESC LIMIT
查询如下:
mysql> select *from lastEntryDemo order by Name desc limit 1;
以下是输出:
+----+------+------+ | Id | Name | Age | +----+------+------+ | 7 | Sam | 20 | +----+------+------+ 1 row in set (0.00 sec)
情况2:使用MAX()
查询如下:
mysql> set @MaxId = (select max(Id) from lastEntryDemo); mysql> select *from lastEntryDemo where Id = @MaxId;
以下是输出:
+----+------+------+ | Id | Name | Age | +----+------+------+ | 7 | Sam | 20 | +----+------+------+ 1 row in set (0.00 sec)