[mysql] 표에서 ID가 가장 큰 전체 행을 어떻게 선택합니까?

이런 식으로 어떻게합니까?

테이블에서 SQL SELECT 행 WHERE id = max (id)



답변

부속 선택을 사용할 수 있습니다.

SELECT row
FROM table
WHERE id=(
    SELECT max(id) FROM table
    )

의 값이 max(id)고유하지 않으면 여러 행이 반환됩니다.

그러한 행을 하나만 원하면 @MichaelMior의 답변을 사용하십시오.

SELECT row from table ORDER BY id DESC LIMIT 1


답변

당신은 또한 할 수 있습니다

SELECT row FROM table ORDER BY id DESC LIMIT 1;

ID별로 내림차순으로 행을 정렬하고 첫 번째 행을 반환합니다. 이것은 최대 ID를 가진 행을 반환하는 것과 같습니다. 물론 이것은 id모든 행에서 고유 하다고 가정합니다 . 그렇지 않으면 최대 값을 가진 여러 행이있을 수 있으며 id하나만 얻을 수 있습니다.


답변

SELECT *
FROM table
WHERE id = (SELECT MAX(id) FROM TABLE)


답변

테이블에 “전체 스캔”이 order by있기 때문에 줄 수 없습니다 order by.

다음 쿼리가 더 좋습니다.

SELECT * FROM table WHERE id = (SELECT MAX(id) FROM table);


답변

하나는 항상 분석 기능을 사용할 수 있으며 더 많은 제어 기능을 제공합니다.

select tmp.row from ( select row, rank() over(partition by id order by id desc ) as rnk from table) tmp where tmp.rnk=1

데이터 유형에 따라 rank () 함수에 문제가 발생하면 row_number () 또는 dense_rank () 중에서 선택할 수 있습니다.


답변

이것으로 시도

 SELECT top 1  id, Col2,  row_number() over (order by id desc)  FROM Table


답변