, 예컨대을 선택합니다. 이 작업을 수행하는 간단한 방법이 있습니까? 고맙습니다.MySQL은 마지막으로 삽입 된 행 가장 쉬운 방법
답변
TIMESTAMP
열의 기본값은 CURRENT_TIMESTAMP
입니다. 여기에서 찾을 수있는 유일한 실제 예측 동작입니다.
두 번째로 할 수있는 일은 ORDER BY ID DESC LIMIT 1
이며 최신 ID가 가장 큰 값이되기를 바랍니다.
SELECT MAX(ID) from bugs WHERE user=Me
동시성에서 최신 레코드가 방금 입력 한 레코드가 아닐 수 있습니다. 기본 키를 사용하여 최신 레코드를 가져 오는 것이 좋습니다.
자동 증가 필드 인 경우 SELECT LAST_INSERT_ID();
을 사용하여 방금 만든 ID를 가져옵니다.
'LAST_INSERT_ID()'는 전역 변수입니다. 조건 기반 ID를 반환하지 않습니다. – Matt
이 ** 전용 **은 쿼리하려는 행 다음에 삽입을 수행하지 않으면 작동합니다. 예를 들어 누군가가 ('insert into users ... ') 게시물을 만들고 ('posts into ...'),'last_insert_id()'는 마지막'posts.id'를 참조 할 것입니다. 이 시점에서'last_insert_id()'를 사용하여 마지막 사용자를 선택하는 방법은 없습니다. –
오케이. 나는 그 질문에 대해 오해한다. 고마워. – Wayne
이를 달성하는 한 가지 방법은 레코드를 주문하고 1로 제한하는 것입니다. 예를 들어 다음 테이블 ('데이터')이있는 경우입니다.
id | user | price
-------------------
1 | me | 40.23
2 | me | 10.23
다음과 같은 SQL 쿼리
select * from data where user='me' order by id desc limit 1
당신은 ORDER BY ID DESC
을 사용할 수 있습니다 시도,하지만 당신은 그 길을 갈 경우는 빠른 방법 : 당신은 큰 테이블이 경우
SELECT * FROM bugs WHERE user = 'me' AND ID = (SELECT MAX(ID) FROM bugs WHERE user = 'me')
, 중요한 차이를 만들 수 있습니다.
심지어 경우에 변수를 설정할 수 있습니다
EDIT 당신이 그것을 필요로 번 이상 (또는 당신은 읽기 쉽게 생각하는 경우).
SELECT @bug_id := MAX(ID) FROM bugs WHERE user = 'me';
SELECT * FROM bugs WHERE user = 'me' AND ID = @bug_id;
나는 실제로 수백 가지의 쿼리를 통해 그것을 타임 아웃했습니다. 'ORDER BY'KEY 'DESC LIMIT 1'은 200 밀리 초 (65 % 이상) 빠를 수 있고 SELECT의 SELECT가 빠를 수 있습니다. 다시, 내 DB는 초소형이고 전체 쿼리는 900 밀리 초 이상 걸리지 않으므로 더 큰 규모의 정렬은 느려질 것이라고 생각합니다. 그런데 다시 MYSQL 구현은 일반적으로 'ORDER BY'KEY 'DESC LIMIT 1'과 같이 일반적으로 최적화 된 쿼리를 사용하므로 최종 결과는 실제로 많이 정렬되지 않고 마지막 결과가 반환됩니다. –
좋아, 그럼 아마 작은 테이블로 빨리. 알고있는 것이 좋다! 단점으로 볼 때, 내 솔루션은 여전히 거대한 테이블에 대해 훨씬 빠릅니다.필자는 약 35,000 개의 행을 가진 테이블을 테스트했으며 ORDER를 사용한 솔루션보다 10 배 더 빠릅니다. – pmrotule
SELECT * FROM `table_name`
ORDER BY `table_name`.`column_name` DESC
LIMIT 1
- 1. SQL 스크립트 내에서 마지막으로 삽입 된 행 ID에 어떻게 액세스합니까?
- 2. MySQL은 : 행
- 3. 마지막으로 삽입 된 행의 자동 번호 값 - MS Access/VBA
- 4. Informix : 마지막으로 삽입 된 레코드의 ID를 얻는 방법
- 5. PHP는 MySQL은, 행
- 6. 삭제 후 mysql은 마지막으로 삽입 된 행이 삭제 된 곳에 그냥 위치합니다.
- 7. 는 MySQL은 각 행
- 8. 마지막으로 수정 된 SQL Server 행 날짜
- 9. Groovy에 마지막으로 삽입 된 객체의 ID를 검색합니다.
- 10. Magento는 트랜잭션 중간에 마지막으로 삽입 된 ID입니다.
- 11. 마지막으로 삽입 된 레코드의 ID 가져 오기
- 12. wordpress에서 마지막으로 삽입 된 ID를 얻으십시오.
- 13. 기본 키에 여러 필드가있는 테이블에 행 삽입 (마지막으로 자동 증가)
- 14. 가장 쉬운 방법
- 15. 정렬 된 DataGridView가있는 행 삽입
- 16. Dot Net에서 가장 쉬운 방법
- 17. MySQL은 - '보는'다른 행
- 18. MySQL은 : 단일 행
- 19. MySQL은 삽입 쿼리를 캐시합니까?
- 20. MySQL은/C# 삽입 문제
- 21. 업데이트 된 데이터를 서버에 업로드하는 가장 쉬운 방법
- 22. SQLite에서 마지막으로 삽입 된 행의 ID를 가져 오는 가장 좋은 방법
- 23. 오라클 db에 마지막으로 삽입 된 레코드의 ID 가져 오기
- 24. MySQL은 많은 같은 단일 행
- 25. Datalist에 최근 삽입 된 행 인덱스를 얻는 방법
- 26. codeigniter에서 mysql에 다중 입력을하는 동안 마지막으로 삽입 된 'Id'가져 오기
- 27. MySQL에서 마지막으로 삽입 된 ID를 가져올 수 없습니다.
- 28. mysql을 사용하여 모든 카테고리에 마지막으로 삽입 된 것을 검색해야합니다.
- 29. 삽입 행
- 30. Java에서 데이터베이스 테이블의 마지막으로 삽입 된 레코드 ID 가져 오기?
내가 찾은 가장 좋은 대답은 [여기] Pomyk (http://stackoverflow.com/questions/1388025/how-to-get-id-of-the-last-updated에 의해 하나입니다 -row-in-mysql # answer-1751282) – aggregate1166877