> 데이터 베이스 > MySQL 튜토리얼 > 순위 열을 사용하여 UNION에서 결합된 MySQL 쿼리 결과를 정렬하려면 어떻게 해야 합니까?

순위 열을 사용하여 UNION에서 결합된 MySQL 쿼리 결과를 정렬하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2025-01-11 11:47:43
원래의
664명이 탐색했습니다.

How Can I Sort Combined MySQL Query Results from UNION Using a Rank Column?

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿