首页 >数据库 >mysql教程 >MySQL视图可以接受参数进行动态数据过滤吗?

MySQL视图可以接受参数进行动态数据过滤吗?

Linda Hamilton
Linda Hamilton原创
2024-12-05 10:39:15439浏览

Can MySQL Views Accept Parameters for Dynamic Data Filtering?

参数可以合并到 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn