mysql创建视图,动态传入参数
MySql视图中动态传入参数
·
一、解释
首先,视图中是不能像mybatis一样使用 # 和 $ 符号传参的,如果想要 动态传入参数,需要结合函数来实现
二、实现方式
1、首选需要创建一个函数,用来接收并赋值要传入的动态参数
create function a() returns VARCHAR(255) DETERMINISTIC NO SQL return @a1;
其中a() 是函数名,VARCHAR(255)是返回的数据类型,需要根据自己传入参数的类型来进行修改,比如传入的动态参数是int类型,这里就要修改为INTEGER。
2、创建视图
CREATE VIEW getState AS SELECT * FROM society_basic WHERE id=a()
这里传参是等号后面直接调函数就可以了
3、使用方式
SELECT s.* FROM (SELECT @a1:='A002' p) parm , getState s
这里的括号中的操作其实是为了给函数赋值,这样写是为了在MyBatis中使用一条SQL,一步到位;
或者拆成两步来看就是
SET @a1 = 1; //很明显这一步是赋值操作
SELECT * FROM getState; //赋值完之后,再查询视图,赋的值就会被带入视图中
更多推荐
已为社区贡献2条内容
所有评论(0)