집 >데이터 베이스 >MySQL 튜토리얼 >MySQL `ORDER BY` 쿼리에서 특정 항목의 행 위치를 얻는 방법은 무엇입니까?
MySQL ORDER BY
쿼리에서 행 위치 선택
id
및 name
두 개의 열이 있는 MySQL 테이블이 있고, 목표는 name
열을 기준으로 오름차순으로 정렬된 테이블에서 단일 행과 해당 위치를 검색하는 것이라고 가정합니다. 원하는 결과 형식은 id
, position
및 name
열이 있는 테이블입니다.
이를 위해 사용자 변수와 결합된 하위 쿼리를 사용할 수 있습니다.
<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>
이 쿼리에서 하위 쿼리는 name
값의 순서에 따라 각 행의 위치를 계산합니다. 사용자 정의 변수 @rownum
는 고유한 위치를 할당하는 데 사용됩니다. 그런 다음 기본 쿼리는 결과를 필터링하여 원하는 name
값 "Beta"를 얻습니다.
또는 다음 쿼리는 동일한 이름의 사례를 해결하는 순위를 제공합니다.
<code class="language-sql">SELECT t.id, (SELECT COUNT(*) FROM TABLE x WHERE x.name <= t.name) AS position, t.name FROM TABLE t WHERE t.name = 'Beta';</code>
이 쿼리는 name
값이 현재 행의 name
값보다 작거나 같은 행 수를 계산하여 위치를 계산합니다. 두 방법 모두 정렬된 결과 집합에서 행의 위치를 결정하는 방법을 제공합니다.
위 내용은 MySQL `ORDER BY` 쿼리에서 특정 항목의 행 위치를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!