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;

浙公网安备 33010602011771号