집 >데이터 베이스 >MySQL 튜토리얼 >순위 열을 사용하여 UNION에서 결합된 MySQL 쿼리 결과를 정렬하려면 어떻게 해야 합니까?
정렬된 결과 그룹화를 달성하기 위해 MySQL 쿼리에서 UNION과 ORDER BY를 함께 사용
MySQL에서는 UNION 연산자를 사용하여 여러 쿼리를 결합하여 결과를 병합할 수 있습니다. 이러한 쿼리를 처리할 때 결합된 결과를 특정 방식으로 정렬하는 것이 도움이 될 수 있습니다.
위치로부터의 거리에 따라 단일 테이블에서 다양한 유형의 레코드를 추출한다고 가정해 보겠습니다. 다음 세 가지 쿼리가 있다고 가정해 보겠습니다.
<code class="language-sql">SELECT id, add_date FROM Table WHERE distance = 0; SELECT id, add_date FROM Table WHERE distance < 5; SELECT id, add_date FROM Table WHERE distance BETWEEN 5 AND 15;</code>
UNION을 사용하여 이러한 쿼리를 결합한 후 "정확한 결과", "5km 이내의 결과" 등과 같은 각 제목 아래에 결과를 정렬할 수 있습니다.
이를 위해 각 SELECT 문에 "Rank"라는 유사 열을 사용할 수 있습니다. 이 열에는 특정 그룹 내에서 각 레코드의 순위가 포함되므로 다른 정렬 기준을 적용하기 전에 이를 기준으로 정렬할 수 있습니다.
이를 수행하는 방법의 예는 다음과 같습니다.
<code class="language-sql">SELECT * FROM ( SELECT 1 AS Rank, id, add_date FROM Table WHERE distance = 0 UNION ALL SELECT 2 AS Rank, id, add_date FROM Table WHERE distance < 5 UNION ALL SELECT 3 AS Rank, id, add_date FROM Table WHERE distance BETWEEN 5 AND 15 ) AS combined_results ORDER BY Rank, id, add_date;</code>
이 쿼리에서 결과는 먼저 "순위" 열을 기준으로 정렬되며, 검색 유형(정확함, 5km 이내 또는 5-15km 이내)에 따라 레코드를 그룹화합니다. 각 그룹 내에서 레코드는 "id" 및 "add_date"를 기준으로 정렬됩니다.
위 내용은 순위 열을 사용하여 UNION에서 결합된 MySQL 쿼리 결과를 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!