从数据库字段中删除特殊字符

我有几千个记录的数据库,我需要剥离下来的领域之一,以确保它仅包含某些字符(字母数字,空格和单引号)。 什么SQL我可以用剥离该字段的任何其他字符(如斜杠等)在整个数据库?

--------------解决方案-------------

update mytable
set FieldName = REPLACE(FieldName,'/','')

这是开始的好地方。

替换()函数是首选。 然而,特殊字符有时会非常棘手的控制台来写。 对于那些你可以结合使用CHAR()函数替换。

如去除€

Update products set description = replace(description, char(128), '');

你可以在这里找到所有的ASCII值

理想情况下,你可以做一个正则表达式来找到所有的特殊字符,但显然这是不可能的使用MySQL。

除此之外,你需要通过你喜欢的脚本语言来运行它。

这也可能是有用的。

首先,你必须知道字符集的数据库和/或表的。 例如,让我们假设你有一个UTF-8的环境和你想要去除/除去像盘旋注册的符号象征,盘旋版权符号,并从外地注册的商标符号,然后通过冰或雅虎搜索互联网或谷歌的在UTF-8系统中的这些符号的十六进制代码值:

符号UTF-8十六进制
======= =========
盘旋版权C2A9
盘旋注册C2AE
商标(即TM)E284A2

那么你的擦洗从表t1场F1选择SQL,使用十六进制/ UNHEX设施与替换功能相结合,将最有可能是这样的:

SELECT cast(unhex(replace(replace(replace(hex(f1),'C2A9',''),'C2AE',''),'E284A2','')) AS char) AS cleanf1 FROM t1 ;

以上,请注意原始字段被洗涤/清洗为f1,表为t1,输出标头是cleanf1。 在“为char”选角是必要的,因为W / O它,MySQL的5.5.8上,我测试的返回BLOB。 希望这可以帮助

有在LIB_MYSQLUDF_PREG看看它需要被编 ​​译到MySQL服务器,但拥有先进的正则表达式等设施preg_replace将与你的任务有所帮助。

分类:MySQL的 时间:2015-03-15 人气:1
本文关键词: 数据库MySQL,SQL
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.673 (s). 10 q(s)