수량 계층 구조 계산을 위한 재귀 저장 프로시저
MySQL에서 중첩된 계층 구조의 수량을 계산하기 위한 재귀 저장 프로시저를 만드는 것은 다음과 같은 과제입니다. 신중하게 만들어진 절차를 통해 극복할 수 있습니다. 각 행이 연관된 수량 및 잠재적인 상위 항목을 나타내는 주어진 테이블을 고려하십시오.
재귀 저장 프로시저
이 트리형 구조를 재귀적으로 탐색하여 계산하려면 총 수량에 따라 다음 저장 프로시저를 구현할 수 있습니다.
<code class="mysql">DELIMITER $$ CREATE PROCEDURE calctotal( IN number INT, OUT total INT ) BEGIN DECLARE parent_ID INT DEFAULT NULL ; DECLARE tmptotal INT DEFAULT 0; DECLARE tmptotal2 INT DEFAULT 0; SELECT parentid FROM test WHERE id = number INTO parent_ID; SELECT quantity FROM test WHERE id = number INTO tmptotal; IF parent_ID IS NULL THEN SET total = tmptotal; ELSE CALL calctotal(parent_ID, tmptotal2); SET total = tmptotal2 * tmptotal; END IF; END$$ DELIMITER ;</code>
프로시저 실행
재귀를 활성화하려면 MySQL 설정을 조정하는 것이 중요합니다.
<code class="mysql">SET @@GLOBAL.max_sp_recursion_depth = 255; SET @@session.max_sp_recursion_depth = 255;</code>
이러한 설정이 구성되면 다음과 같이 저장 프로시저를 호출할 수 있습니다.
<code class="mysql">CALL calctotal(6, @total); SELECT @total;</code>
재귀 계산 예
주어진 샘플 데이터에 대해, 항목 6이 항목 3의 하위 항목인 항목 5의 하위인 경우 저장 프로시저는 다음과 같이 총 수량을 재귀적으로 계산합니다.
4 * 2 * 10 * 3 = 240
따라서 번호 = 6인 절차는 240이 됩니다.
위 내용은 수량 계층 구조를 계산하기 위해 MySQL에서 재귀 저장 프로시저를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!