집 >데이터 베이스 >MySQL 튜토리얼 >주문 후 MySQL에서 행 위치를 어떻게 효율적으로 찾을 수 있습니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!