mysql中字符串问题

dongshanyu 2006-09-12 10:33:06
mysql中,有一条记录的字段test:
=================================================================
SELECT LENGTH('aa') FROM tb_email WHERE email_email LIKE 'aa%'
得到的字符串长度为2
SELECT LENGTH(test) FROM tb_email WHERE email_email LIKE 'aa%'
得到的字符串长度为4
=================================================================
我不知道其中含有什么特殊字符,我使用replace想去除特殊字符,但回车,换行等等,都试过了,没有想过,长度还是4,不知道哪位能告诉我其中可能有什么字符?有方法去掉吗?
...全文
198 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongshanyu 2006-09-13
  • 打赏
  • 举报
回复
to 后一个是CHAR(4),按定义的长度算.
通过两条记录LENGTH(test)的不同,可以得知length应该计算的是实际的字符长度,而非定义的字段长度。
zjx1302 2006-09-12
  • 打赏
  • 举报
回复
关注中.....
华芸智森 2006-09-12
  • 打赏
  • 举报
回复
基本上是 CHAR(4) 和 VARCHAR(4) 的区别.
前一个'AA' 相当于 VARCHAR(4),按实际长度计.
后一个是CHAR(4),按定义的长度算.
dongshanyu 2006-09-12
  • 打赏
  • 举报
回复
to SELECT LENGTH(RTRIM(CAST(test AS VARCHAR))) FROM tb_email WHERE email_id=1
数据库是mysql,cast不能用,且字段test是字符型,去除空格此问题依旧。

同时,test字段的另外一条记录也存在同样的问题,不过显示出来的只有6个字符,而通过length得到的却有32个字符。
华芸智森 2006-09-12
  • 打赏
  • 举报
回复
处理的是同一条记录,'aa'是我通过mysql的客户端看到的字段test的信息


SELECT LENGTH(RTRIM(CAST(test AS VARCHAR))) FROM tb_email WHERE email_id=1
dongshanyu 2006-09-12
  • 打赏
  • 举报
回复
to MSTOP(陈建华)

我帖的SQL语句有点问题,应该为:
SELECT LENGTH('aa') FROM tb_email WHERE email_id=1
SELECT LENGTH(test) FROM tb_email WHERE email_id=1

处理的是同一条记录,'aa'是我通过mysql的客户端看到的字段test的信息
华芸智森 2006-09-12
  • 打赏
  • 举报
回复
SELECT LENGTH('aa') FROM tb_email WHERE email_email LIKE 'aa%'
得到的字符串长度为2
====================================
得到的是 'AA'的长度


SELECT LENGTH(test) FROM tb_email WHERE email_email LIKE 'aa%'
得到的字符串长度为4
============================================
得到的是 test 字段最后一条记录的长度.
dongshanyu 2006-09-12
  • 打赏
  • 举报
回复
为什么length长度会不同?有些字符是不是看不到?有办法显示或排除这些字符吗?

各位,有力的出力,没力的顶一下,也很感谢!

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧