sql语句返回为0,问题在哪里?
select count(*) from notice limit 40,20
返回0
select count(*) from notice limit 40,20
返回总的记录数
怎么能返回读取的记录数呢?
limit跟count(*)是否有冲突呢?这种问题在手册上一般都查不到吧。
顺便求怎么判断是否是主键,索引,我现在用的是MYSQL
------解决方案--------------------你用select * from notice limit 40,20能查到数据吗
------解决方案--------------------count是组统计函数,统计记录的条量。limit X,Y是从X+1条开始返回Y条记录,你看看去掉其中一个有数据没?
------解决方案--------------------这个用的着统计多少条么? 后面那个数是多少就说明有多少条啊. 这个统计是没有意思的吧.
------解决方案--------------------
那说明你的总记录数<20
------解决方案--------------------不能同时使用。
select count(*) from notice limit 0,20
这句只所以能用,是因为0开头的,改为别的,也是没结果。
------解决方案--------------------无结果语句,我认为是这样
------解决方案--------------------
经测试发现,并不是这两个函数有冲突,只是mysql是先执行count,后执行limit
这两条sql都是先查出notice的总条数,然后分页 其实就是对一条记录进行分页,
因为第一条sql是从0开始的 所以有记录显示 而第二条sql查不出任何数据
------解决方案--------------------count(*)的意思是从你查出的结果中统计出总数
limit x,y则是指从下标x开始查找y条,
sql是先执行查找语法,再进行统计的,因为你的查找语句返回的数据是null,所以count的时候就没有结果了
------解决方案--------------------select count(*) from notice limit 40,20 这个是从第40条开始 往后取20条记录
你这个表数记录数据超过40吗?
------解决方案--------------------我也测试了下 发现的确是先执行count 然后再执行limit的