MySQL의 계층적 데이터 검색을 위한 재귀 쿼리
데이터베이스에서 계층적 데이터를 처리할 때 여러 데이터에서 정보를 검색해야 하는 경우가 많습니다. 관계의 수준. MySQL에서는 재귀 쿼리가 이 작업에 대한 강력한 솔루션을 제공합니다.
다음 예를 고려해 보십시오. 'a'와 'b'라는 두 개의 열이 있는 테이블에 표현된 간단한 가계도를 상상해 보십시오. 여기서 'a'는 부모와 'b'는 자식을 나타냅니다. 특정 개인의 모든 조상(부모, 조부모 등)을 찾고 싶다면 어떻게 접근해야 할까요?
MySQL에서는 재귀 쿼리를 활용하여 트리 구조를 탐색하고 조상을 검색할 수 있습니다. 특정 노드의. 'b' 값이 5인 개인의 조상을 찾고 싶다고 가정해 보겠습니다. 다음 쿼리는 이를 수행합니다.
SELECT @id := (SELECT senderid FROM mytable WHERE receiverid = @id) AS person FROM (SELECT @id := 5) vars STRAIGHT_JOIN mytable WHERE @id IS NOT NULL
이 쿼리는 재귀 하위 쿼리를 사용하여 'a' 사이의 관계를 설정합니다. (senderid) 및 'b' (receiverid) 열입니다. 내부 쿼리는 변수 @id를 원하는 노드(5)로 초기화한 다음 외부 쿼리를 사용하여 더 이상 조상이 없을 때까지 후속 행을 재귀적으로 조인합니다.
이 쿼리를 실행하면 다음 결과를 얻을 수 있습니다. :
person |
---|
1 |
2 |
3 |
4 |
이 결과는 초기 노드 자체와 해당 부모, 조부모 등을 포함하여 'b' 값이 5인 노드까지 이어지는 완전한 계층 구조를 제공합니다. 에. 따라서 MySQL의 재귀 쿼리는 계층적 데이터를 탐색하고 여러 수준의 관계에 걸쳐 자세한 정보를 검색하기 위한 강력한 도구 역할을 합니다.
위 내용은 재귀 쿼리는 어떻게 MySQL의 계층적 데이터에서 상위 항목을 효율적으로 검색할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!