> 데이터 베이스 > MySQL 튜토리얼 > MySQL에서 각 방법 및 ID 조합에 대한 최신 레코드를 선택하는 방법은 무엇입니까?

MySQL에서 각 방법 및 ID 조합에 대한 최신 레코드를 선택하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-18 18:40:19
원래의
254명이 탐색했습니다.

How to Select the Latest Records for Each Method and ID Combination in MySQL?

MySQL 테이블에서 최신 레코드를 검색하는 방법

시간에 민감한 데이터를 MySQL 테이블에 저장할 때 다음이 필요한 경우가 많습니다. 특정 필드 조합에 대한 최신 레코드를 검색합니다. 다음 예에서는 타임스탬프, 메서드, ID 등의 필드가 포함된 RPC 응답 테이블을 처리할 때 이를 달성하는 방법을 보여줍니다.

질문

rpc_responses는 다음 구조를 갖습니다:

CREATE TABLE rpc_responses (
  timestamp DATE,
  method VARCHAR,
  id VARCHAR,
  response MEDIUMTEXT,
  PRIMARY KEY (timestamp, method, id)
);
로그인 후 복사

다음과 같은 경우 데이터:

timestamp method id response
2009-01-10 getThud 16 "....."
2009-01-10 getFoo 12 "....."
2009-01-10 getBar 12 "....."
2009-01-11 getFoo 12 "....."
2009-01-11 getBar 16 "....."

원하는 결과

모든 기존 메소드 및 ID 조합에 대한 가장 최근 응답 목록 가져오기:

timestamp method id response
2009-01-10 getThud 16 "....."
2009-01-10 getBar 12 "....."
2009-01-11 getFoo 12 "....."
2009-01-11 getBar 16 "....."

답변

성취하려면 이를 위해서는 다음 쿼리를 활용하세요.

SELECT * 
FROM (
    SELECT *,
    IF(@last_method = method, 0, 1) AS new_method_group,
    @last_method := method 
    FROM rpc_responses 
    ORDER BY method, timestamp DESC
) AS t1
WHERE new_method_group = 1;
로그인 후 복사

이 쿼리는 조인 없이도 원하는 결과를 효율적으로 검색합니다. 또한 원하는 행 구조를 유지하여 메소드와 ID의 고유한 조합마다 고유한 레코드를 제공합니다.

위 내용은 MySQL에서 각 방법 및 ID 조합에 대한 최신 레코드를 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿