정렬된 결과 그룹화를 달성하기 위해 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!