我从子表中把相应的字段插入总表后,BUSINESS_TIME字段的实际长度就大于100了。我查了子表的字段长度,是正确的。但是,插入到总表后长度就发生了改变。有些记录中business_time本来为空的。插入总表里面就变成了“ ”,这引号里面是我从数据库表中拷出来的信息。我用SELECT business_time FROM poi_collection where BUSINESS_TIME=" "来筛选的话,也能筛选出东西。而且很多本来记录就是一个时间例如“12:30-19:30”,结果我插入总表里就莫名的多出来了一串空字符。这是什么原因?我应该怎么改?
11 个解决方案
#1
在补充一下,子表里business_time字段类型是“varchar”
请高手指点!谢谢!
请高手指点!谢谢!
#2
类型为varchar时,如果时varchar(10)的话,填入一个字符'a'那么实际字符就是'a',如果变为了char型,它会以空格填满后面的空白,直到值为10十个字符,那么char(10)插入'a'就会变成'a '这样的东西。
#3
那我现在应该怎么改呢?我的总表里已经有几万条数据了。重新插入已经有点不现实了。
#4
你如果要全空的字段为null,可以用 update `table` set BUSINESS_TIME=null where BUSINESS_TIME='';
#5
我用“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='';”来更新的话,会不会那些长串空格的记录还是更新不了呢?
#6
我以前更新这种,用''这个条件就可以查出所有的空字段的了,你可以试试嘛,你的结果不一样是不是''的结果包含
' '这样的结果?
' '这样的结果?
#7
你用char类型保存数据,拿出来得时候记得用trim去空格才可以,如果不是的话用这个字段做对比就可能会出错
#8
不是这样子的。是''的结果和" "的结果是不一样的。
我在" "的结果中记录了几条去和""的对比,结果根本没有。
我在" "的结果中记录了几条去和""的对比,结果根本没有。
#9
我觉得这两种查询结果是并列的。不重合。
#10
我的不会哦,帮不了你了。
#11
呵呵,已经很帮忙了。谢谢。
#1
在补充一下,子表里business_time字段类型是“varchar”
请高手指点!谢谢!
请高手指点!谢谢!
#2
类型为varchar时,如果时varchar(10)的话,填入一个字符'a'那么实际字符就是'a',如果变为了char型,它会以空格填满后面的空白,直到值为10十个字符,那么char(10)插入'a'就会变成'a '这样的东西。
#3
那我现在应该怎么改呢?我的总表里已经有几万条数据了。重新插入已经有点不现实了。
#4
你如果要全空的字段为null,可以用 update `table` set BUSINESS_TIME=null where BUSINESS_TIME='';
#5
我用“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='';”来更新的话,会不会那些长串空格的记录还是更新不了呢?
#6
我以前更新这种,用''这个条件就可以查出所有的空字段的了,你可以试试嘛,你的结果不一样是不是''的结果包含
' '这样的结果?
' '这样的结果?
#7
你用char类型保存数据,拿出来得时候记得用trim去空格才可以,如果不是的话用这个字段做对比就可能会出错
#8
不是这样子的。是''的结果和" "的结果是不一样的。
我在" "的结果中记录了几条去和""的对比,结果根本没有。
我在" "的结果中记录了几条去和""的对比,结果根本没有。
#9
我觉得这两种查询结果是并列的。不重合。
#10
我的不会哦,帮不了你了。
#11
呵呵,已经很帮忙了。谢谢。