집 >데이터 베이스 >MySQL 튜토리얼 >타임스탬프를 기반으로 특정 ID의 최신 행을 효율적으로 검색하는 방법은 무엇입니까?
지정된 ID에 대한 최신 행 검색
동일한 ID를 가진 여러 행이 포함된 테이블에서 다음 행만 효율적으로 추출할 수 있는 방법은 무엇입니까? 타임스탬프를 기반으로 한 가장 최근 행은 무엇입니까? 예제 테이블을 고려해보세요.
| id | signin | signout | +----+---------------------+---------+ | 1 | 2011-12-12 09:27:24 | NULL | | 1 | 2011-12-13 09:27:31 | NULL | | 1 | 2011-12-14 09:27:34 | NULL | | 2 | 2011-12-14 09:28:21 | NULL | +----+---------------------+---------+
이를 달성하려면 집계 함수와 하위 쿼리를 활용할 수 있습니다.
Aggregate MAX() 사용
집계 MAX() 함수를 사용하여 각 ID의 최신 로그인 타임스탬프를 확인할 수 있습니다. ID 열별로 결과를 그룹화하면 각 고유 ID에 대한 최대 로그인 타임스탬프를 식별할 수 있습니다.
SELECT id, MAX(signin) AS most_recent_signin FROM tbl GROUP BY id
전체 행 검색
전체 행 검색 특정 ID에 대한 가장 최근 로그인에 해당하는 행에 대해 최대 로그인 타임스탬프를 반환하는 하위 쿼리에 대해 INNER JOIN을 사용합니다. ID.
SELECT tbl.id, signin, signout FROM tbl INNER JOIN ( SELECT id, MAX(signin) AS maxsign FROM tbl GROUP BY id ) ms ON tbl.id = ms.id AND signin = maxsign WHERE tbl.id=1
이 쿼리는 다음을 사용하여 가장 최근의 전체 레코드를 반환합니다.
위 내용은 타임스탬프를 기반으로 특정 ID의 최신 행을 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!