发现问题是在查询明细的时候发现的,
我有一个部门及部门人员查询的功能,在部门列表里显示部门的所有人员,但是当选择一个部门查看人员的时候发现人员总是比部门里列出的人员少一个,于是跑到数据库里去查找,我用Navicat工具查看的数据
查询语句:
select * from dPersonel 
where bumenbianhao='28'
 limit 1,2000;结果:
1904 5411 陈满堂 1
2509 5159 王广立 1
2671 向立炳 1
3858 5419 杨晋卿 1
3859 5671 石二斌 1
4212 3540 范珂 1SELECT count(*) from dpersonel where bumenbianhao='28' ;
结果:
7
但是,我通过在工具中,双击数据表,从筛选向导中查找数据的时候,发现数据准确的
我还发现,当我用不同的 ORDER BY 的时候,查询结果里显示的也不一样select * from dPersonel 
where bumenbianhao='28'
order by xingming
 limit 1,2000;
1292 5372 吴继 1
3858 5419 杨晋卿 1
2509 5159 王广立 1
3859 5671 石二斌 1
4212 3540 范珂 1
1904 5411 陈满堂 1 到底是哪里有问题了

解决方案 »

  1.   

    show variables like 'char%'; 
      

  2.   


    结果是
    character_set_client utf8
    character_set_connection utf8
    character_set_database utf8
    character_set_results utf8
    character_set_server utf8
    character_set_system utf8
    character_sets_dir C:\mysql\share\charsets/
      

  3.   

    我也碰到过这种情况,当使用limit的时候会减少记录数,你试着不用limit看看select * from dPersonel 
    where bumenbianhao='28'
    order by xingming
    ;
      

  4.   

    个人感觉是limit应该从0开始,
      

  5.   

    没准你用的这个版本的mysql就存在这样一个bug, 具体版本号多少?
    select @@version
      

  6.   

    limit 1 , N 是指1 之后的记录,也就是会取 2,3,4,5,应该是 limit 0,2000或者直接 limit 2000