一个关于MySQL limit语法的问题
MySql的limit问题
MySql中的limit后是不是不可以跟参数?如果我写成了
declear startIndex INT;
declear endIndex INT;
select * from table_name limit startIndex, endIndex;
好像有问题,如何才能避开这个问题呢?
问题点数:100、回复次数:9Top
1 楼alexwan(牧林:才多身子弱)回复于 2006-05-04 03:17:12 得分 0
limit后面至少跟一个函数吧?Top
2 楼misvcom(零下一度)回复于 2006-05-10 19:22:46 得分 0
limit 后面跟的必须是常量Top
3 楼rardge(Rardge)回复于 2006-05-11 14:37:28 得分 0
limit 后面当然能用变量啦,只是提交到 MySQL 的时候,startIndex, endIndex 必须要有具体的数值,有就可以!Top
4 楼woaiwanghuan(我不学习是猪)回复于 2006-05-12 11:14:51 得分 0
要设置startIndex和endIndex的值,INT默认值为0,就是一条记录都不返回了Top
5 楼misvcom(零下一度)回复于 2006-05-12 14:28:18 得分 0
DELIMITER $$
DROP PROCEDURE IF EXISTS `isb_service`.`Select_Templates` $$
CREATE PROCEDURE `isb_service`.`Select_Templates` (
in in_startIndex integer,
in in_maxPerPage integer
)
BEGIN
Declare startIndex integer;
Declare maxPerPage integer;
set startIndex=in_startIndex;
set maxPerPage=in_maxPerPage;
select * from `templates` limit startIndex,maxPerPage;
END $$
DELIMITER ;Top
6 楼misvcom(零下一度)回复于 2006-05-12 14:29:20 得分 0
以上的代码无法通过,将startIndex,maxPerPage换成常量后又可以了Top
7 楼misvcom(零下一度)回复于 2006-05-12 14:30:42 得分 0
请问到底怎样才可以在limit后面使用变量?Top
8 楼woaiwanghuan(我不学习是猪)回复于 2006-05-12 16:46:45 得分 0
兄弟,是MySQL自身的问题,它不支持limit使用变量!
我觉得是MySQL存储过程编译器,不支持limit使用变量,
可能是MySQL开发人员当时没想到limit使用变量吧Top
9 楼dreamXren(追梦人)回复于 2006-05-15 11:49:26 得分 0
难道不能自己组装一条sql语句,非得在那里放上变量吗?
C里面的组装方式:sprintf(buffer, "select * from `templates` limit %d, %d", startIndex, maxPerPage);Top




