나는 열 이름에서 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
쿼리에서 를 대체하여 반환되는 행 수를 제어 할 수 있습니다.