在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
mysql 存储过程中 limit之后使用分页变量,传入分页参数. 在有的时候,我们需要自己手动来控制分页的变量,例如是10条分页,还是20条分页,这个时候limit之后的数字就是变量了
这里不仅仅是 limit之后 使用了2个变量,而且在 from 之前 也使用了一个变量。
类似于微博游标分批次获取信息 有的时候,一次性拿100条数据是很夸张的(相对于安卓手机客户端来说),那么我们就需要分页一下,类似于一个游标,一次取10条或者20条数据,如果还有多的数据,则客户端点击更多,继续获取10条信息
DELIMITER $$ USE `data`$$ DROP PROCEDURE IF EXISTS `fn_json_GetTeachnew`$$ CREATE DEFINER=`root`@`%` PROCEDURE `fn_json_GetTeachnew`( DELIMITER ; 最后的一个例子 DELIMITER $$ USE `xiaoxin`$$ DROP PROCEDURE IF EXISTS `J_F_Getnoticemsg`$$ CREATE DEFINER=`root`@`%` PROCEDURE `J_F_Getnoticemsg`( p_uid BIGINT, p_mid BIGINT, -- 上次获取的最小消息ID值 p_functionid INT, p_getType INT, -- 0:获取已发通知,1获取已收通知 p_pagesize INT ) BEGIN DECLARE tempSql VARCHAR(5000); -- 2.5【消息】下拉刷新获取历史通知接口 -- “Mid”: [数字]消息ID, -- “Content”:”消息内容”, //JSON -- “Functionid”:”功能ID”, -- “Senddate”:”发送时间戳”, //按照时间升序,最旧的最上面,最新的最下面 -- “Senderid”: [数字]发送者身份ID, -- “Sendername”:”发送者姓名” -- “ReceiveIds”:”SId,Cid混合的串””//当GetType为0这里有值,当为1 这里没值 IF(p_getType=0) THEN -- 当是获取已发信息的时候 “ReceiveIds” 有值 SET tempSql=' select `Messageid` as `Mid`,`Content`,`Functionid`,`Sendtime`,`Senderid`,`Sendername`,`Targetids` as ReceiveIds from `tb_notice_send` where `Functionid`=? and `Senderid`=? and `Messageid`<? order by `Sendtime` desc limit ?'; SET @fun=p_functionid; SET @t_uid=p_uid; SET @t_mid=p_mid; SET @pagesize=p_pagesize; SET @SQUERY=tempSql; PREPARE STMT FROM @SQUERY; EXECUTE STMT USING @fun,@t_uid,@t_mid,@pagesize; ELSE SET tempSql=' select `Recordid` as `Mid`,`Content`,`Functionid`,`Sendtime`,`Senderid`,`Sendername`,'''' as ReceiveIds from `tb_notice_receive` where `Functionid`=? and `Receiverid`=? and `Recordid`<? order by `Sendtime` desc limit ?'; SET @fun=p_functionid; SET @t_uid=p_uid; SET @t_mid=p_mid; SET @pagesize=p_pagesize; SET @SQUERY=tempSql; PREPARE STMT FROM @SQUERY; EXECUTE STMT USING @fun,@t_uid,@t_mid,@pagesize; END IF; END$$ DELIMITER ; |
请发表评论