"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > ORDER BY를 사용하지 않고 미리 정의된 순서로 SQL 쿼리 결과를 검색하는 방법은 무엇입니까?

ORDER BY를 사용하지 않고 미리 정의된 순서로 SQL 쿼리 결과를 검색하는 방법은 무엇입니까?

2024년 11월 20일에 게시됨
검색:667

How to Retrieve SQL Query Results in a Predefined Order Without Using ORDER BY?

미리 정의된 순서로 쿼리 결과 반환

SQL에서는 일반적으로 ORDER를 사용하여 지정하지 않는 한 특정 순서로 쿼리 결과를 검색하기가 어렵습니다. BY 절. 그러나 특정 필드의 값만을 기준으로 미리 결정된 순서로 데이터를 검색하려고 시도하는 경우와 같이 일부 시나리오에서는 ORDER BY 절이 적용되지 않을 수 있습니다.

최근 토론에서 ORDER BY 절이 적용되지 않는 시나리오가 나타났습니다. ID(7, 2, 5, 9, 8)를 선택하고 추가 기준에 의존하지 않고 정확한 순서로 검색하기를 원했습니다. 다음 쿼리는 둘 다 예측할 수 없는 순서로 결과를 반환합니다.

SELECT id FROM table WHERE id in (7,2,5,9,8);
SELECT id FROM table WHERE id in (8,2,5,9,7);

이 문제를 우아하게 해결하는 블로그 항목을 통해 새로운 솔루션이 발견되었습니다.

SELECT id FROM table WHERE id in (7,2,5,9,8) 
ORDER BY FIND_IN_SET(id,"7,2,5,9,8");

FIND_IN_SET 함수는 주어진 세트 내에서 지정된 값의 위치를 ​​반환하는 데 사용됩니다. 예를 들어, id 7의 위치는 1이고, id 2의 위치는 2입니다.

FIND_IN_SET과 함께 ORDER BY 절을 적용하면 ORDER BY 문이 위치를 이해하고 결과를 효과적으로 정렬합니다. 지정된 값을 기반으로 합니다. 이 솔루션은 원하는 사전 결정된 순서를 달성하기 위해 MySQL의 내부 메커니즘을 활용합니다.

ORDER BY 절을 사용하여 원하는 순서를 지정할 수 없는 경우 이 기술이 귀중한 대안이 될 수 있다는 점은 주목할 가치가 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3