Loading

SQL如何查询视图中某一列的值是否包含于一个变量中

需求

SQL如何查询视图中某一列的值是否包含于一个变量中,比如我的视图名是HTYSZXMXVIEW,查询的列名是qbid,变量名是bianliang,变量的内容恒大于列内容。例如,列值123abc,变量值为123abcdef,查询满足这一列值包含于这个变量中的数据。

代码


-- 过程中的MySQL错误#1351 – 视图的SELECT包含变量或参数 http://www.voidcn.com/article/p-tekdwucg-bwg.html
-- 建表
CREATE TABLE `test2` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT 'id主键',
  `appid` varchar(100) DEFAULT '' COMMENT '系统名称',
  `key` varchar(100) NOT NULL COMMENT '键值',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='test2';
select * from test2;
-- 插入数据
INSERT INTO test2 (appid,`key`) VALUES 
('testId','1')
,('testId1','1')
;
-- 防止创建函数报错.  https://blog.csdn.net/weixin_42613018/article/details/113274821
SET GLOBAL log_bin_trust_function_creators = 1;
-- 创建函数. 
create function get_appid()
returns varchar(64) 
return (select @appid);
-- 设置变量 
set @appid:='testId';
select @appid;
-- 测试函数
select get_appid();
-- 创建视图.
create view  v_test2  as  select * from test2 where appid = get_appid();
--  test查询
select * from v_test2;

参考资料

posted @ 2021-03-15 09:53  世界这么美还没钱去看  阅读(446)  评论(0)    收藏  举报