zjfgf
zjfgf
2012-06-29 10:13

mysql limit 分页问题

已采纳

SELECT * FROM city.u_device u where deviceType =1 limit 0,4;

查询结果:
24, 1, '格力', 'eeee', '04A3D3DEC8EFA99A21FB84A893D60FF7'
21, 1, '格力', 'TS2012', '04A3D3DEC8EFA99A21FB84A893D60FF7'
88, 1, '格力', 'TS202', '04A3D3DEC8EFA99A21FB84A893D60FF7'
31, 1, '格力', 'TS9999', '04A3D3DEC8EFA99A21FB84A893D60FF7'

SELECT * FROM city.u_device u where deviceType =1 limit 0,20;
查询结果:
21, 1, '格力', 'TS2012', '04A3D3DEC8EFA99A21FB84A893D60FF7'
22, 1, '海尔', 'TD212', '04A3D3DEC8EFA99A21FB84A893D60FF7'
23, 1, '海尔', 'rrrrr', '04A3D3DEC8EFA99A21FB84A893D60FF7'
24, 1, '格力', 'eeee', '04A3D3DEC8EFA99A21FB84A893D60FF7'
31, 1, '格力', 'TS9999', '04A3D3DEC8EFA99A21FB84A893D60FF7'
88, 1, '格力', 'TS202', '04A3D3DEC8EFA99A21FB84A893D60FF7'

我不是很理解,mysql是不是在每页大小小的时候,不是按照id进行排序,如果每页大小大的时候,是按照id排序的?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答

  • aa1aa3 爱上一条鱼 9年前

    这个。。。好像和limit没啥关系

    是和select有关系,没有Order by的时候。。或者排序的条件不是唯一的时候,是可能会出现排序随机的情况的 mysql和oracle都是按照物理存储顺序显示的。。也就是表扫描的顺序

    点赞 评论 复制链接分享
  • hill007299 hill007299 9年前

    直接指定id排序 或者创建时间排序好了,可以保证每次的顺序都一样

    点赞 评论 复制链接分享
  • wangyijiangshui wangyijiangshui 9年前

    如果id是主键则默认升序排序,如果不是主键随机(具体要看其所在记录的主键值)!

    点赞 评论 复制链接分享
  • iteye_1328 iteye_1328 9年前

    如果你建立了主键索引,mysql 默认按照主键排序 asc

    如果没有,则是随即,一般情况下,都是顺序来的

    其它索引如果不指定的话,也没用,只有用order by 指定,才会按照你需要的排序进行

    点赞 评论 复制链接分享
  • works001 works001 9年前

    首先看你id是否是主键 如果是主键默认会按这个排序
    另外分页查询加上order by 会避免重复数据的问题

    点赞 评论 复制链接分享
  • liuyinhuan0409 liuyinhuan0409 9年前

    自己显示指定排序就好了,order by id

    点赞 评论 复制链接分享
  • iteye_12540 iteye_12540 9年前

    如果你没有指定排序,那么就不要指望数据库每次返回的结果集顺序都一致。你没有指定排序,数据库引擎是不会花时间进行排序处理的。所以获得的结果集顺序是随机的。不过一般都是从头到尾顺序处理表,所以很多时候看起来就好像用ID排序一样。

    点赞 评论 复制链接分享

相关推荐