求助mysql查询条件中有日期limit问题

当mysql查询条件中有日期比较后,再limit限制后,返回结果有问题

 

 select createTime,a,b from Table where createTime < date(DATE_FORMAT('2012-11-04 10:31:20.78','%Y-%m-%d %k.%i.%s') )  order by createTime  desc   limit 2, 2 

 

 这个sql返回一条记录

去掉limit

 

select createTime,a,b from Table where createTime < date(DATE_FORMAT('2012-11-04 10:31:20.78','%Y-%m-%d %k.%i.%s') ) order by createTime desc

 

 返回两条记录。

再上limit,去掉where条件中是日期比较

select createTime,a,b from Table order by createTime  desc   limit 2, 2 

 这个结果返回两条记录。

 

 

有没有谁也遇到 过这种问题,在线急等。

 

楼主按你的sql执行效果来说,如果不加limit查询结果是两条记录,而去掉条件加上limit则返回两条数据。说明Table的数据是大于两条的,而最多能返回的是两条符合要求的记录,而你的limit 是 “limit 2, 2 ”意思是,从满足要求的集合中第二条记录开始,取2条记录,但是满足要求的只有两条,那就能会显示1条记录,而且显示的是第二条记录。楼主你似乎没太弄懂limit的用法。
语法:
LIMIT子句可以被用来限制SELECT语句返回的行数。LIMIT取1个或2个数字参数,如果给定2个参数,第一个指定要返回的第一行的偏移量,第二个指定返回行的最大数目。初始行的偏移量是0(不是1)。
所以按你的要求应该是 limit 0, 2,从下标为0的记录开始,取2条记录.

limit 2,2 表示从第二条记录开始再区两条

http://database.51cto.com/art/201005/200401.htm