it-source

내림차순의 MySQL 제한

criticalcode 2023. 10. 28. 07:59
반응형

내림차순의 MySQL 제한

동일한 "LIMIT (from), (count)"를 사용하지만 결과를 거꾸로 얻기 위해 쿼리를 작성할 수 있습니까?

예를 들어, 테이블에 8개의 행이 있는데 두 단계로 5개의 행을 가져오려면 첫 번째 단계 쿼리를 수행해야 합니다.

select * from table limit 0, 5

첫 번째 단계 결과:

first 5 rows;

두 번째 단계 쿼리:

select * from table limit 5, 5

두 번째 단계 결과:

last 3 rows;

하지만 저는 그 반대로 받고 싶습니다.제 말은 첫번째 단계부터 마지막 3열을 원하고 두번째 단계부터 첫번째 5열을 원합니다.답변 감사합니다.

안 돼요, 이러면 안 돼요.미포함ORDER BY절은 쿼리마다 결과가 동일한 순서에 의존해서는 안 됩니다.테스트 중에는 잘 작동할 수도 있지만, 순서가 불확실하여 나중에 고장이 날 수도 있습니다.주문서를 사용합니다.

SELECT * FROM table1 ORDER BY id LIMIT 5

그런데 마지막 3개의 행을 얻는 또 다른 방법은 순서를 뒤집고 처음 3개의 행을 선택하는 것입니다.

SELECT * FROM table1 ORDER BY id DESC LIMIT 3

결과 집합의 행 수가 항상 8개가 아니더라도 항상 작동합니다.

예를 들어, 열 시간이 있는 테이블이 있는데 마지막 5개 항목을 원하는 경우 설명이 아닌 순서대로 반환해야 한다고 가정해 보겠습니다.

select * from ( select * from `table` order by `time` desc limit 5 ) t order by `time` asc

네, 이 2개의 쿼리를 교환할 수 있습니다.

select * from table limit 5, 5

select * from table limit 0, 5

이 방법은 비교적 더 쉽습니다.

SELECT doc_id,serial_number,status FROM date_time ORDER BY  date_time DESC LIMIT 0,1;

언급URL : https://stackoverflow.com/questions/2708992/mysql-limit-from-descending-order

반응형