下面的语句总是得不到一条记录$rs=$db->query("select id,pid,bt,isparent from b where bh='$bh' order by sn asc");但去掉排序,就可以:$rs=$db->query("select id,pid,bt,isparent from b where bh='$bh'");
是语法错误吗?该怎么写啊?谢谢啦~~~

解决方案 »

  1.   

    补充:当$bh='01'时却可以查询到上百条数据,但当$bh='77'时却查询不到数据,其实有两条数据的啊!
      

  2.   

    注意带排序的结果 是 Empty set,为什么?mysql> describe b;
    +----------+------------------+------+-----+---------+-------+
    | Field    | Type             | Null | Key | Default | Extra |
    +----------+------------------+------+-----+---------+-------+
    | bh       | varchar(2)       | NO   | PRI | NULL    |       |
    | id       | int(10) unsigned | NO   | PRI | NULL    |       |
    | pid      | int(10) unsigned | NO   |     | NULL    |       |
    | sn       | int(10) unsigned | NO   |     | 0       |       |
    | bm       | varchar(10)      | NO   |     | NULL    |       |
    | ji       | tinyint(1)       | NO   |     | 0       |       |
    | bt       | varchar(256)     | NO   |     | NULL    |       |
    | you      | text             | NO   |     | NULL    |       |
    | hege     | text             | NO   |     | NULL    |       |
    | banfa    | text             | NO   |     | NULL    |       |
    | fz       | decimal(5,2)     | NO   |     | NULL    |       |
    | isparent | tinyint(1)       | NO   |     | 0       |       |
    +----------+------------------+------+-----+---------+-------+
    12 rows in set (0.00 sec)mysql> select id,pid,bt,isparent,sn from b where bh='33' ;
    +----+-----+-------+----------+----+
    | id | pid | bt    | isparent | sn |
    +----+-----+-------+----------+----+
    |  1 |   0 | 增加1     |        1 |  0 |
    |  2 |   1 | 增加2     |        0 |  1 |
    |  3 |   1 | 增加3     |        0 |  2 |
    +----+-----+-------+----------+----+
    3 rows in set (0.00 sec)mysql> select id,pid,bt,isparent,sn from b where bh='33' order by sn;
    Empty set (0.00 sec)mysql>_
      

  3.   

    有时会是索引错误导致的。 重新 repair table b。
      

  4.   

    表什么,重新建立SN上的索引试试,OR 修复一下此表试试
      

  5.   

    最后把
    bt varchar(256)改为
    bt  varchar(100)
    可以了请问256是256个字节还是256个字符啊?对于utf8,一个汉字“字符”可能是3个“字节”啊?
      

  6.   

    不对,gbk字符集下就是256个字符...
      

  7.   

    select的问题好像还在困扰着我,先结贴,等会再开新帖~~~