select * from allcategory where PCid=0 and Cates='art'  order by ACid ASC 搜出来的结果不正确 PCid=0 的条件没有筛选..
ACid    PCid      ACname   ACPath            Cates
39 37 产品检测 0,37,39, art
39 37 产品检测 0,37,39, art
39 37 产品检测 0,37,39, art
39 37 产品检测 0,37,39, art
select * from allcategory where PCid=0 and cates='art'没有加上order by 搜出来的结果是正确的
ACid    PCid      ACname   ACPath            Cates
418 0 111 0,418, art
420 0 123 0,420, art
69 0 3G地带1 0,69, art
414 0 5566 0,414, art该不会是人品问题吧,,以上sql在navicat下运行的.

解决方案 »

  1.   

    PCid  为什么不可以为0,知道了...0='' 所以..失效了..
      

  2.   

    建议提供你的 crearte table 语句和 insert into 测试数据语句。这样别人可以模拟你的问题。
      

  3.   


    嗯..~~其实就是反应一下  PCid=0 时不能与 order by 共用.我想是0与空值是一样的 就等于1=1 这样的效果,数据比较乱,临时组织下CREATE TABLE `allcategory` (
      `ACid` bigint(20) NOT NULL auto_increment,
      `PCid` bigint(20) NOT NULL,
      `ACname` varchar(130) NOT NULL,
      `ACPath` varchar(130) NOT NULL,
      `ACPathName` varchar(130) NOT NULL,
      `Cates` varchar(130) character set utf8 NOT NULL,  PRIMARY KEY  (`ACid`),
      KEY `PCid` (`PCid`,`ACname`)
    ) ENGINE=MyISAM AUTO_INCREMENT=412 DEFAULT CHARSET=utf8 COMMENT='';INSERT INTO `allcategory` VALUES 
    (34,0,'氧吧','0,34,','','art'),
    (35,34,'手机美容','0,34,35,','','art'),
    (36,34,'手机维修','0,34,36,','','art'),
    (37,0,'社区','0,37,','','art'),
    (38,37,'时尚资讯','0,37,38,','','art'),
    (39,37,'产品检测','0,37,39,','','art')
      

  4.   

    测试了一下,没有你所说的问题。
    建议你先repair table allcategory; 修复一下。mysql> CREATE TABLE `allcategory` (
        ->   `ACid` bigint(20) NOT NULL auto_increment,
        ->   `PCid` bigint(20) NOT NULL,
        ->   `ACname` varchar(130) NOT NULL,
        ->   `ACPath` varchar(130) NOT NULL,
        ->   `ACPathName` varchar(130) NOT NULL,
        ->   `Cates` varchar(130) character set utf8 NOT NULL,  PRIMARY KEY  (`ACid`),
        ->   KEY `PCid` (`PCid`,`ACname`)
        -> ) ENGINE=MyISAM AUTO_INCREMENT=412 DEFAULT CHARSET=utf8 COMMENT='';
    Query OK, 0 rows affected (0.33 sec)mysql>
    mysql> INSERT INTO `allcategory` VALUES
        -> (34,0,'氧吧','0,34,','','art'),
        -> (35,34,'手机美容','0,34,35,','','art'),
        -> (36,34,'手机维修','0,34,36,','','art'),
        -> (37,0,'社区','0,37,','','art'),
        -> (38,37,'时尚资讯','0,37,38,','','art'),
        -> (39,37,'产品检测','0,37,39,','','art')
        -> ;
    Query OK, 6 rows affected (0.00 sec)
    Records: 6  Duplicates: 0  Warnings: 0mysql> select * from allcategory where PCid=0 and Cates='art'  order by ACid ASC
     ;
    +------+------+--------+--------+------------+-------+
    | ACid | PCid | ACname | ACPath | ACPathName | Cates |
    +------+------+--------+--------+------------+-------+
    |   34 |    0 | 氧吧   | 0,34,  |            | art   |
    |   37 |    0 | 社区   | 0,37,  |            | art   |
    +------+------+--------+--------+------------+-------+
    2 rows in set (0.06 sec)mysql> select * from allcategory where PCid=0 and cates='art';
    +------+------+--------+--------+------------+-------+
    | ACid | PCid | ACname | ACPath | ACPathName | Cates |
    +------+------+--------+--------+------------+-------+
    |   37 |    0 | 社区   | 0,37,  |            | art   |
    |   34 |    0 | 氧吧   | 0,34,  |            | art   |
    +------+------+--------+--------+------------+-------+
    2 rows in set (0.00 sec)mysql>
      

  5.   


    mysql> repair table allcategory;
    +----------------+--------+----------+-------------------------------------------------------+
    | Table          | Op     | Msg_type | Msg_text                                              |
    +----------------+--------+----------+-------------------------------------------------------+
    | x3.allcategory | repair | Error    | Incorrect information in file: '.\x3\allcategory.frm' |
    | x3.allcategory | repair | error    | Corrupt                                               |
    +----------------+--------+----------+-------------------------------------------------------+
    2 rows in setmysql> 现在修复都不行了,表也不能用.