日期:2014-05-17  浏览次数:21057 次

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条记录,你看看去掉其中一个有数据没?
------解决方案--------------------
这个用的着统计多少条么? 后面那个数是多少就说明有多少条啊. 这个统计是没有意思的吧.
------解决方案--------------------
引用:
SQL code?1select count(*) from notice limit 40,20返回0
SQL code?1select count(*) from notice limit 40,20返回总的记录数
怎么能返回读取的记录数呢?
limit跟count(*)是否有冲突呢?这种问题在手册上一般都查不到吧。
顺便求怎么判断是否是主键,索引,我现在用的……

 
那说明你的总记录数<20
------解决方案--------------------
不能同时使用。
select count(*) from notice limit 0,20

这句只所以能用,是因为0开头的,改为别的,也是没结果。
------解决方案--------------------
无结果语句,我认为是这样
------解决方案--------------------
引用:
引用:你用select * from notice limit 40,20能查到数据吗

我表达错了,这个语句是能够显示东西的。

但是
SQL code?1select count(*) from notice limit 0,20
返回了总的记录数

但是
SQL code?1select count(*) fro……


经测试发现,并不是这两个函数有冲突,只是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的