>데이터 베이스 >MySQL 튜토리얼 >주문 후 MySQL에서 행 위치를 어떻게 효율적으로 찾을 수 있습니까?

주문 후 MySQL에서 행 위치를 어떻게 효율적으로 찾을 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-18 02:27:09463검색

How Can I Efficiently Find the Row Position in MySQL After Ordering?

MySQL 정렬 후 효율적인 행 위치 획득

MySQL 테이블에서 특정 열(예: '이름')을 기준으로 정렬한 후 특정 행의 위치를 ​​결정하려면 큰 결과 집합을 로드하지 않도록 최적화된 접근 방식이 필요합니다.

다음 쿼리를 고려해 보세요.

<code class="language-sql">SELECT x.id,
       x.position,
       x.name
  FROM (SELECT t.id,
               t.name,
               @rownum := @rownum + 1 AS position
          FROM TABLE t
          JOIN (SELECT @rownum := 0) r
      ORDER BY t.name) x
 WHERE x.name = 'Beta'</code>

이 쿼리는 하위 쿼리를 사용하여 ORDER BY 절을 기반으로 행 위치를 할당한 다음 필수 행 '베타'를 필터링합니다. 위치는 각 행마다 자동으로 증가하는 @rownum 사용자 변수를 사용하여 계산됩니다.

또는 다음 쿼리를 사용하여 연결을 다르게 처리할 수 있습니다.

<code class="language-sql">SELECT t.id,
       (SELECT COUNT(*)
          FROM TABLE x
         WHERE x.name < t.name) + 1 AS position
  FROM TABLE t
 WHERE t.name = 'Beta'</code>

이 방법은 병렬 행에 대해 동일한 위치를 반환하며 첫 번째 쿼리와 다른 결과 집합을 제공할 수 있습니다.

위 내용은 주문 후 MySQL에서 행 위치를 어떻게 효율적으로 찾을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.