求SQL,去除字段特殊符号。

小雨转晴 2008-09-10 02:24:06
我在做mssql2000到mysql数据导入...


mysql表中有一个用户名为fishy.


但导入fish~这个用户名的时候出异常了,用户名重复。

我做了如下测试。

mysql> select username from uc_members where username='fish~';
+----------+
| username |
+----------+
| fishy |
+----------+
1 row in set

不知道哪位可以帮我解释一下为什么会有这种情况。


另外我主要想再mssql下 如果把某一字段的特殊字符都去掉。求高手指教。
...全文
3071 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
http://blog.csdn.net/chinahuyong

使用escape来哈...
skyblackhole 2008-09-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 pt1314917 的回复:]
引用 6 楼 wind_324 的回复:


这样值是单纯的去掉一个啊。我知道这个,要是还有的不知道的特殊字符呢?怎么也一起去掉?还有 上面我贴的语句,有人能能解释一下么?谢谢


特殊字符总该有个定义吧。什么样的字符才算特殊字符?
[/Quote]

特殊字符总得有个定义!!
你要取汉字,里面英文你可说是特殊字符;你要取英文,里面数字可以说是特殊字符。找找规律看……
HeroHxw 2008-09-18
  • 打赏
  • 举报
回复
update tabname set username=replace(username,'~','')
tcxx2008 2008-09-18
  • 打赏
  • 举报
回复
难很难很很难
中国风 2008-09-18
  • 打赏
  • 举报
回复
自定义一个函数处理;
用patindex('%[^a-zA-Z]%',@变量)作为判断条件,用stuff一个一个的去掉非字母的字符
hyde100 2008-09-18
  • 打赏
  • 举报
回复
试了一下,没出现楼主提出的问题
hyde100 2008-09-18
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 wind_324 的回复:]
mysql> select username from uc_members where username='fish~';
+----------+
| username |
+----------+
| fishy |
+----------+
1 row in set

不知道哪位可以帮我解释一下为什么会有这种情况。
[/Quote]
是比较奇怪,难道变异了?
小雨转晴 2008-09-18
  • 打赏
  • 举报
回复
没人会哦
zhangyisc 2008-09-12
  • 打赏
  • 举报
回复
大家讨论,对mysql不熟悉。是不是“~”为转义字符
小雨转晴 2008-09-11
  • 打赏
  • 举报
回复
mysql> select username from uc_members where username='fish~';
+----------+
| username |
+----------+
| fishy |
+----------+
1 row in set

不知道哪位可以帮我解释一下为什么会有这种情况。
utpcb 2008-09-11
  • 打赏
  • 举报
回复
估计没标准是不行的
lff642 2008-09-11
  • 打赏
  • 举报
回复
你得先给出什么样的算特殊字符,这样才有办法处理
小雨转晴 2008-09-11
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 CN_SQL 的回复:]
引用 10 楼 wind_324 的回复:
除了Email格式允许的以外的都包含在特殊字符里。

每个EMAIL的要求也是不一样啊。
[/Quote]


Email格式要求不一样呀?- - !我菜了

通用的大致应该有噢
CN_SQL 2008-09-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wind_324 的回复:]
除了Email格式允许的以外的都包含在特殊字符里。
[/Quote]
每个EMAIL的要求也是不一样啊。
小雨转晴 2008-09-10
  • 打赏
  • 举报
回复
除了Email格式允许的以外的都包含在特殊字符里。
rockyvan 2008-09-10
  • 打赏
  • 举报
回复
給你所謂的特殊字符給個定義,根據定義去做,應該不難!
比如:除了數字,其它的都是特殊字符。
再比如:只有@#$%^&*是特殊字符。
所以,你先把這個問題解決了。
pt1314917 2008-09-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wind_324 的回复:]


这样值是单纯的去掉一个啊。我知道这个,要是还有的不知道的特殊字符呢?怎么也一起去掉?还有 上面我贴的语句,有人能能解释一下么?谢谢
[/Quote]

特殊字符总该有个定义吧。什么样的字符才算特殊字符?
水族杰纶 2008-09-10
  • 打赏
  • 举报
回复
替換非數字,非英文,非漢字的
declare @s varchar(8000)
set @s='BERMUDA TRUST(FAR EAST) LTD-GT好人 SHENZHEN & CHINA '
declare @i int
while patindex('%[^0-9,^a-z,^A-Z,^吖-座]%',@s)>0
begin
set @i=patindex('%[^0-9,^a-z,^A-Z,^吖-座]%',@s)
Set @s=stuff(@s,@i,1,'')
end
select @s
小雨转晴 2008-09-10
  • 打赏
  • 举报
回复


这样值是单纯的去掉一个啊。我知道这个,要是还有的不知道的特殊字符呢?怎么也一起去掉?还有 上面我贴的语句,有人能能解释一下么?谢谢
love_cutezhou 2008-09-10
  • 打赏
  • 举报
回复

replace(username,'~','')
加载更多回复(4)

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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