我的总表里有个字段“BUSINESS_TIME”类型为“char”,字段长度为100,可以为空。
我从子表中把相应的字段插入总表后,BUSINESS_TIME字段的实际长度就大于100了。我查了子表的字段长度,是正确的。但是,插入到总表后长度就发生了改变。有些记录中business_time本来为空的。插入总表里面就变成了“                                                                                                                                                                                                                                                ”,这引号里面是我从数据库表中拷出来的信息。我用SELECT business_time  FROM poi_collection where BUSINESS_TIME="                                                                                                                                                                                                                                                "来筛选的话,也能筛选出东西。而且很多本来记录就是一个时间例如“12:30-19:30”,结果我插入总表里就莫名的多出来了一串空字符。这是什么原因?我应该怎么改?

解决方案 »

  1.   

    在补充一下,子表里business_time字段类型是“varchar”
    请高手指点!谢谢!
      

  2.   

    类型为varchar时,如果时varchar(10)的话,填入一个字符'a'那么实际字符就是'a',如果变为了char型,它会以空格填满后面的空白,直到值为10十个字符,那么char(10)插入'a'就会变成'a           '这样的东西。
      

  3.   

    你如果要全空的字段为null,可以用 update `table` set BUSINESS_TIME=null where BUSINESS_TIME='';
      

  4.   

    我用“SELECT *  FROM poi_collection where business_time=""”来查了一下,查询的结果和我用“SELECT   business_time     FROM   poi_collection   where   BUSINESS_TIME="                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 "”查出来的结果是不一样的。那我如果用“update   `table`   set   BUSINESS_TIME=null   where   BUSINESS_TIME='';”来更新的话,会不会那些长串空格的记录还是更新不了呢?
      

  5.   

    你用char类型保存数据,拿出来得时候记得用trim去空格才可以,如果不是的话用这个字段做对比就可能会出错