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) -> ); Query OK, 0 rows affected (0.71 sec)
삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다.
mysql> insert into lastEntryDemo(Name,Age) values('Larry',24); Query OK, 1 row affected (0.14 sec) mysql> insert into lastEntryDemo(Name,Age) values('John',21); Query OK, 1 row affected (0.19 sec) mysql> insert into lastEntryDemo(Name,Age) values('David',22); Query OK, 1 row affected (0.18 sec) mysql> insert into lastEntryDemo(Name,Age) values('Bob',25); Query OK, 1 row affected (0.20 sec) mysql> insert into lastEntryDemo(Name,Age) values('Carol',29); Query OK, 1 row affected (0.17 sec) mysql> insert into lastEntryDemo(Name,Age) values('Mike',23); Query OK, 1 row affected (0.14 sec) mysql> insert into lastEntryDemo(Name,Age) values('Sam',20); Query OK, 1 row affected (0.15 sec)
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 제한
쿼리는 다음과 같습니다.
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); Query OK, 0 rows affected (0.00 sec) mysql> select *from lastEntryDemo where Id = @MaxId;
다음은 출력입니다.
+----+------+------+ | Id | Name | Age | +----+------+------+ | 7 | Sam | 20 | +----+------+------+ 1 row in set (0.00 sec)