집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 뷰가 동적 데이터 필터링을 위한 매개변수를 허용할 수 있습니까?
매개변수를 MySQL 뷰에 통합할 수 있나요?
초기 쿼리에서는 매개변수가 있는 뷰를 생성하려고 시도하지만 MySQL에서는 이를 금지합니다. 제시된 해결 방법은 매개변수 값을 검색하는 함수를 생성한 다음 이를 뷰 정의에 통합하는 것입니다. 그러나 이 접근 방식은 복잡하고 우아함이 부족하여 만족스럽지 못한 것으로 간주됩니다.
주요 목표는 매개변수를 직접 활용할 수 있는 뷰를 만들어 데이터 그룹화 및 필터링을 용이하게 하는 것입니다. MergedDenialsViewHelper 및 MergedDenials 보기를 고려하세요. 정의된 기간 내에 특정 사용자 및 기능에 대한 거부를 표시하기 위해 다음 매개변수가 사용됩니다.
SET @DenialMergingTime := 5; SELECT GroupTime, FeatureId, UserHostId, MultiplicitySum FROM MergedDenials WHERE UserHostId IN (1, 2) AND FeatureId IN (3, 4);
이 방법은 효과적이지만 복잡한 특성으로 인해 문제가 있습니다. 대체 접근 방식이 있습니다: 원하는 매개변수 값을 반환하는 함수를 생성하는 것입니다.
create function p1() returns INTEGER DETERMINISTIC NO SQL return @p1;
그런 다음, 통합된 함수를 사용하여 뷰를 생성할 수 있습니다.
create view h_parm as select * from sw_hardware_big where unit_id = p1() ;
이 뷰를 사용하여 , 매개변수를 직접 활용할 수 있습니다.
select s.* from (select @p1:=12 p) parm , h_parm s;
이 솔루션을 사용하면 이전 해결 방법이 필요하지 않아 전체 프로세스가 단순화되고 성능이 향상됩니다. 코드 가독성.
위 내용은 MySQL 뷰가 동적 데이터 필터링을 위한 매개변수를 허용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!