MySQL 저장 프로시저를 사용하여 동적 SQL 쿼리의 출력을 변수에 저장
MySQL 저장 프로시저에서는 다음을 실행해야 하는 경우가 있습니다. 동적 쿼리를 수행하고 출력을 사용자 정의 변수에 저장합니다. 이를 달성하는 방법은 다음과 같습니다.
CREATE PROCEDURE procedure_name( IN query_text TEXT, OUT output_variable TEXT ) BEGIN SET output_variable = ''; SET @sql = query_text; PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; END
이 절차에서는 실행할 동적 쿼리가 포함된 입력 매개변수 query_text와 쿼리의 출력을 저장할 출력 매개변수 output_variable을 선언합니다.
그런 다음 output_variable을 빈 문자열로 설정하고 PREPARE 명령을 사용하여 query_text를 SQL 문으로 준비합니다. EXECUTE 문은 준비된 문을 실행하는 데 사용되고 DEALLOCATE PREPARE는 이와 관련된 리소스를 해제하는 데 사용됩니다.
예:
동적 다음 출력을 생성하는 쿼리:
SELECT CONCAT('Value 1: ', value1, ' | ', 'Value 2: ', value2) AS output FROM table_name WHERE id = ?
이 쿼리를 실행하고 변수로 출력:
CREATE PROCEDURE get_dynamic_output( IN input_id INT, OUT dynamic_output TEXT ) BEGIN SET dynamic_output = ''; SET @query = 'SELECT CONCAT('"'Value 1: '"', value1, '"" | '"', 'Value 2: '"', value2, '""') AS output FROM table_name WHERE id = ?'; PREPARE stmt FROM @query; SET @id = input_id; EXECUTE stmt USING @id; DEALLOCATE PREPARE stmt; END
이 절차를 사용하려면 input_id 매개변수를 원하는 값으로 설정하고 실행할 수 있습니다.
CALL get_dynamic_output(1, @output_value); SELECT @output_value;
이렇게 하면 동적 출력이 인쇄됩니다. 단일 텍스트 문자열로 쿼리하세요.
위 내용은 MySQL 저장 프로시저 변수에 동적 SQL 쿼리 결과를 저장하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!