>데이터 베이스 >MySQL 튜토리얼 >날짜가 지정된 MySQL 테이블에서 가장 최근 레코드를 효율적으로 검색하는 방법은 무엇입니까?

날짜가 지정된 MySQL 테이블에서 가장 최근 레코드를 효율적으로 검색하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-24 09:43:14156검색

How to Efficiently Retrieve the Most Recent Records from a Dated MySQL Table?

날짜가 지정된 MySQL 테이블에서 가장 최근 레코드 검색

다음 구조의 MySQL 테이블:

Table: rpc_responses

timestamp   (date)
method      (varchar)
id          (varchar)
response    (mediumtext)

PRIMARY KEY(timestamp,method,id)

다음을 고려하세요. 단계:

  1. 그룹화를 선택하기 위한 하위 쿼리 만들기:

    SELECT *,
    if(@last_method=method,0,1) as new_method_group,
    @last_method:=method AS t1
    FROM rpc_responses
    ORDER BY method,timestamp DESC
    • @last_method 변수는 빈 문자열로 초기화됩니다.
    • if() 문은 시작을 나타내는 new_method_group 열을 생성합니다. 동일한 메소드 값을 가진 새로운 행 그룹.
  2. 각 그룹의 첫 번째 행에 대한 필터:

    WHERE new_method_group=1

    이 조건은 메서드와 타임스탬프의 각 조합에 대해 가장 최근 행만 표시되도록 보장합니다. 선택되었습니다.

  3. 원하는 열 선택:

    SELECT timestamp, method, id, response
    FROM t1

이 쿼리는 원하는 결과 집합을 반환합니다. 기존의 모든 메소드 및 ID 조합에 대한 최신 응답을 포함합니다. 조인 사용을 방지하고 MySQL 변수를 활용하여 다양한 메소드 그룹 간의 전환을 추적하므로 효율적입니다.

위 내용은 날짜가 지정된 MySQL 테이블에서 가장 최근 레코드를 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.