关于varchar()的长度问题?

是在定义表时,已经将这个字段的长度定义为了varchar(20)了。我想问一下,像varchar(20)这样的字段里,可以写入多少个汉字,英文和数字?是不是:只能写入10... 是在定义表时,已经将这个字段的长度定义为了varchar(20)了。
我想问一下,像varchar(20)这样的字段里,可以写入多少个汉字,英文和数字?
是不是:只能写入10个汉字,
20个英文,
20个数字。

因为当我输入的汉字多时,他就会报错!
展开
 我来答
清心又谦恭丶布丁9
推荐于2017-10-06 · TA获得超过6604个赞
知道小有建树答主
回答量:1247
采纳率:100%
帮助的人:1874万
展开全部
是的哦。一个汉字占两个字符。英文和数字占一个字符。
varchar(20)里就是表示字符的位数。
所以楼主的推论是正确的
亚远景信息科技
2024-12-11 广告
上海亚远景信息科技有限公司是国内汽车行业咨询及评估领军机构之一,深耕于ASPICE、敏捷SPICE、ISO26262功能安全、ISO21434车辆网络安全领域,拥有20年以上的行业经验,专精于培训、咨询及评估服务,广受全球车厂及供应商赞誉,... 点击进入详情页
本回答由亚远景信息科技提供
匿名用户
2011-09-22
展开全部
我觉得您应该首先确认一下存储在数据库中的张三,123的长度,很可能是你出入的时候就已经发生了错误。varchar类型,如果数据库中数据没有空格,取值到变量中,是绝对不可能出现空格的。所以问题很可能在你插入数据的时候就有了。这种按照长度补空格,只有char行才会有。

所以先确定一下数据库表中数据的长度到底是多少?使用len函数查询一下。
select len(用户名), len(密码) from 表名字
看看长度是不是有问题。
另外,如果有空格,可以使用rtrim函数把右边的空格去掉,这样也可以保证数据的准确。
select rtrim(用户名), rtrim(密码) from 表名
ltrim是去左侧空格的函数,rtrim是去右侧空格的函数。
因为SQLSERVER中没有trim函数同时去掉左侧右侧的空格,所以要分别使用ltrim和rtrim来去掉左边和右边的空格。你这个只是在右侧补了空格,使用rtrim就够用了。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
soonys1
2011-09-22 · 超过50用户采纳过TA的回答
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:125万
展开全部
如果是文本框就像发表文章之类一般字段类型最好使用text,就可以输入很多字的,而varchar(20)只能输入20个字以内的。一般是用来注册用户名和密码之类的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帅到底
2011-10-06
知道答主
回答量:32
采纳率:0%
帮助的人:14.7万
展开全部
恩 是这么回事。 输入的字符或汉字不能超出你定义的范围。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式