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

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

Linda Hamilton
发布: 2024-12-05 10:39:15
原创
473 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板