MySQL에서 마지막 행을 선택하십시오.
SELECT
MySQL 테이블의 마지막 행은 어떻게 합니까?
INSERT
데이터를 보내고 있는데 이전 행에서 열 값을 검색해야합니다.
있다 auto_increment
테이블이다.
예, 거기에 auto_increment가 있습니다
테이블 의 모든 행 중 마지막 행 을 원하면 마지막으로 MAX(id)
정답입니다. 거의:
SELECT fields FROM table ORDER BY id DESC LIMIT 1;
관계형 데이터베이스의 테이블은 행 집합 일뿐입니다. 그리고 수학의 세트는 순서가없는 모음입니다. 첫 번째 또는 마지막 행이 없습니다. 이전 행이나 다음 행이 없습니다.
정렬되지 않은 행 집합을 일부 필드를 기준으로 정렬 한 다음 정의한 순서대로 결과 집합을 반복 할 수 있습니다.
자동 증분 필드가 있으므로 정렬 필드로 사용한다고 가정합니다. 이 경우 다음을 수행 할 수 있습니다.
SELECT *
FROM your_table
ORDER BY your_auto_increment_field DESC
LIMIT 1;
우선 정렬되지 않은 행 집합을 your_auto_increment_field
(또는 호출 한 항목별로) 내림차순으로 정렬하는 방법을 확인하십시오. 그런 다음을 사용하여 결과 집합을 첫 번째 행으로 제한합니다 LIMIT 1
.
많은 행이있는 테이블에서 두 개의 쿼리가 더 빠를 것입니다 ...
SELECT @last_id := MAX(id) FROM table;
SELECT * FROM table WHERE id = @last_id;
@spacepille이 제안한 두 개의 쿼리를 다음과 같은 단일 쿼리로 결합 할 수 있습니다.
SELECT * FROM `table_name` WHERE id=(SELECT MAX(id) FROM `table_name`);
빠른 속도로 작동하지만 INNODB 테이블에서는 ORDER + LIMIT보다 밀리 초가 약간 느립니다.
간단하게 사용하십시오. PDO::lastInsertId
http://php.net/manual/en/pdo.lastinsertid.php
가장 최근에 추가 된 것을 원하면 타임 스탬프를 추가하고 가장 높은 타임 스탬프 (1)를 기준으로 역순으로 순서를 선택하십시오. ID별로 이동하려면 ID별로 정렬하십시오. JUST가 추가 한 것을 사용하려면을 사용하십시오 mysql_insert_id
.
SELECT * FROM adds where id=(select max(id) from adds);
이 쿼리는 테이블의 마지막 레코드를 가져 오는 데 사용되었습니다.
명령 OFFSET
에서 를 사용할 수 있습니다 LIMIT
.
SELECT * FROM aTable LIMIT 1 OFFSET 99
테이블에 100 개의 행이있는 경우 primary_key에 의존하지 않고 마지막 행을 반환합니다
여기에 많은 답변이 자동 증분 열이 색인되어 있으면 자동 증분 순서대로 동일하게 표시됩니다.
당신은 그런 분야가 있고이 경우 보조 노트에, 이다 기본 키 사용에 대한 성능 저하가없는 order by
대 select max(id)
. 기본 키는 데이터는 (적어도 InnoDB에 대한) 데이터베이스 파일에 정렬되는 방식이며, RDBMS 어디 데이터의 끝을 알고,하고 최적화 할 수있는 order by id + limit 1
범위는 AS 동일하게max(id)
이제 자동 증가 된 기본 키가없는 경우 이동량이 적은 도로입니다. 기본 키는 3 개의 필드로 구성된 자연 키일 수 있습니다. 그러나 모든 것이 손실되는 것은 아닙니다. 프로그래밍 언어에서 먼저 행 수를 얻을 수 있습니다.
SELECT Count(*) - 1 AS rowcount FROM <yourTable>;
그런 다음 LIMIT
절 에서 얻은 숫자를 사용하십시오.
SELECT * FROM orderbook2
LIMIT <number_from_rowcount>, 1
불행히도 MySQL은 LIMIT
절 에서 하위 쿼리 또는 사용자 변수를 허용하지 않습니다.
거의 모든 데이터베이스 테이블에는 auto_increment 열이 있습니다 (일반적으로 id)
테이블의 모든 행 중 마지막 행을 원하면
SELECT columns FROM table ORDER BY id DESC LIMIT 1;
또는
두 개의 쿼리를 다음과 같은 단일 쿼리로 결합 할 수 있습니다.
SELECT columns FROM table WHERE id=(SELECT MAX(id) FROM table);
참고 URL : https://stackoverflow.com/questions/4073923/select-last-row-in-mysql
'programing tip' 카테고리의 다른 글
GitHub 메시지의 의미 : 이메일 개인 정보 제한으로 인해 푸시 거부 (0) | 2020.06.05 |
---|---|
Javascript에서 HtmlSpecialChars가 동일합니까? (0) | 2020.06.05 |
Rails : 페이지 제목을 어떻게 바꾸나요? (0) | 2020.06.05 |
쿼리를 통해 MySQL에서 데이터베이스 구조를 얻는 방법 (0) | 2020.06.05 |
Visual Studio 2015 또는 2017에서 단위 테스트를 찾지 못함 (0) | 2020.06.05 |