获取数据的问题。

MySql 码拜 8年前 (2016-02-21) 1197次浏览
有这样的一个运用:
根据添加的数据来获取数据的数据
例如insert into a(id,pro) values(1,”a”),(1,”a”)
insert into a(id,pro) values(2,”b”)
这样的添加了2条,本人想从这个添加的数据来获取b表的数量
本人现在只能是select * from 1 where pro=”a” limit 2
select * from b where pro=”b” limit 1
这样,假如a表insert很多的话,那select b表要消耗的资源就比较多了。b表有500万。
这个limit能不能用变量 例如limit if 或limit case when什么的
解决方案

40

本人也查了一下,这个好像不能用变量,但可以考虑是用 动态语句,大致是这样的:
CREATE PROCEDURE GetData(_pro varchar(20),_limit int)
BEGIN
declare @a varchar(20);
declare @b int;
PREPARE s FROM “SELECT * FROM User WHERE pro=? LIMIT ?”;
set @a=_pro;
set @b=_limit;
EXECUTE s USING @a,@b;
DEALLOCATE PREPARE s;
END;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明获取数据的问题。
喜欢 (0)
[1034331897@qq.com]
分享 (0)