mysql varchar字段值偶尔会多出字符

[复制链接]
查看11 | 回复6 | 2015-3-6 11:57:31 | 显示全部楼层 |阅读模式
插入同样的字符串,比如'ssq'只有千分之一的概率会变成'ssq\0',而且这个\0在mysql里是null的转义字符,为什么呢?这个字段不是主键不是外键,是一个联合索引的一个字段,查询的时候需要用=查询,如果带了个的小尾巴,条件field='ssq'查询就会漏掉'ssq\0'的部分,产生'ssq\0'数据的概率极小,所以很难测试出真正的原因,不知道有没有人遇到过类似的问题
[ 本帖最后由 xugang9804 于 2008-6-11 17:47 编辑 ]
回复

使用道具 举报

千问 | 2015-3-6 11:57:31 | 显示全部楼层
还真没 见到过,使用ssq会代表null的意义,是不是你 设置了使用ssq替换掉 NULL值得
我曾看到过mysql允许设置特定的值,作为null的转义值。
我 晚上回家 帮 你测试下...你看下你的my.cnf是否有这个配置
回复

使用道具 举报

千问 | 2015-3-6 11:57:31 | 显示全部楼层
Post your write statement here.
回复

使用道具 举报

千问 | 2015-3-6 11:57:31 | 显示全部楼层
可能描述的不是太清楚,再补充一下,这个"\0"符号在mysql命令行下是不可见字符,有点怀疑是不是和字段默认值null有关?现在我把default 设置成''了,如果一个月内不出现此问题,可能就不会再出现了。
回复

使用道具 举报

千问 | 2015-3-6 11:57:31 | 显示全部楼层
你是怎么插入数据的?
回复

使用道具 举报

千问 | 2015-3-6 11:57:31 | 显示全部楼层
字段设置为空field=''应该不会出现这种情况了吧。
回复

使用道具 举报

千问 | 2015-3-6 11:57:31 | 显示全部楼层
原帖由 xugang9804 于 2008-6-12 09:58 发表
可能描述的不是太清楚,再补充一下,这个""符号在mysql命令行下是不可见字符,有点怀疑是不是和字段默认值null有关?现在我把default 设置成''了,如果一个月内不出现此问题,可能就不会再出现了。


那就是你没有描述清楚了,因为 表达的就是NULL, 是转义字符,配合0刚好是表示ASCII为0的NULL
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行