[mysql] MySQL에서 마지막 N 개 행 선택

나는 열 이름에서 MySQL 데이터베이스에서 마지막 50 개 행을 선택하려는 ID 입니다 기본 키 . 목표는 행이 ASC 순서 로 ID 별로 정렬되어야 하는 것이므로이 쿼리가 작동하지 않습니다.

SELECT 
    *
FROM
    `table`
ORDER BY id DESC
LIMIT 50;

또한 행을 조작 (삭제) 할 수 있다는 점이 놀랍기 때문에 다음 쿼리도 작동하지 않습니다.

SELECT 
    *
FROM
    `table`
WHERE
    id > ((SELECT 
            MAX(id)
        FROM
            chat) - 50)
ORDER BY id ASC;

질문 : 조작 할 수 있고 ASC 순서에있는 MySQL 데이터베이스에서 마지막 N 개 행을 검색하는 방법은 무엇입니까?



답변

하위 쿼리로 수행 할 수 있습니다.

SELECT * FROM (
    SELECT * FROM table ORDER BY id DESC LIMIT 50
) sub
ORDER BY id ASC

에서 마지막 50 개 행을 table선택한 다음 오름차순으로 정렬합니다.


답변

SELECT * FROM table ORDER BY id DESC,datechat desc LIMIT 50

채팅이 전송 된 날짜 (및 시간)를 저장하는 날짜 필드가 있거나 행당 점진적으로 (DESC 별 순서) 또는 Desinscrementally (ASC 별 순서) 데이터로 채워지는 필드가있는 경우 두 번째 열에 넣습니다. 데이터가 순서 여야합니다.

그게 나를 위해 일한 것입니다 !!!! 도움이 되길 바랍니다 !!!!


답변

SELECT * FROM table ORDER BY id DESC LIMIT 50

자원을 절약하고 하나의 쿼리를 작성하면 중첩 쿼리를 작성할 필요가 없습니다.


답변

select * from Table ORDER BY id LIMIT 30

참고 : * id는 고유해야합니다. * 30쿼리에서 를 대체하여 반환되는 행 수를 제어 할 수 있습니다.


답변