Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何处理数据库表字段值中的特殊字符?

如何处理数据库表字段值中的特殊字符?

作者头像
披头
发布于 2020-11-20 02:25:39
发布于 2020-11-20 02:25:39
4.8K00
代码可运行
举报
文章被收录于专栏:datartisandatartisan
运行总次数:0
代码可运行

现网业务运行过程中,可能会遇到数据库表字段值包含特殊字符的场景,此场景虽然不常见,但只要一出现,其影响却往往是致命的,且排查难度较高,非常有必要了解一下。

表字段值中的特殊字符可以分为两类:可见字符、不可见字符。

可见字符处理

业务的原始数据一般是文本文件,因此,数据插入数据库表时需要按照分隔符进行分割,字段值中包含约定的分隔符、文本识别符都属于特殊字符。

常见的分隔符:, | ;

文本识别符:'' ""

这种特殊字符会导致数据错列,json无法翻译等问题,严重影响业务运行,应该提前处理掉。有人就说了,我接手的别人的数据库,不清楚是不是存在这个问题,这个咋办呢?没关系的,一条update语句就可以拯救你。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 语法
UPDATE 
   table_name
   SET 
   column_name = REPLACE(column_name, old_text, new_text)
 WHERE 
   condition;
-- 应用样例
UPDATE 
   customer
   SET 
   email = REPLACE (email, '|', '_');

不可见字符处理

上边讲述了可见字符的处理,对于不可见字符例如:换行符LF、回车键CR,又该如何处理呢?别怕,sql支持unicode编码,把换行符、回车键对应的unicode编码转换为空就好了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE `WORKORDER` 
   SET WORKID = REPLACE(REPLACE(WORKID, CHAR(10),''), CHAR(13),'');
-- 这里使用了函数的嵌套,一条语句完成了换行符和回车键的转换,也可以转换两次。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乐享数据8090 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
mysql 去除前后空白字符
在数据库导入excel中数据时,经常会出现一些空格或者其他特殊字符导致数据无法查询,我们都知道 trim(field) 可以消除字段前后的空格,但是如何消除空白的特殊字符呢:
皇上得了花柳病
2020/07/09
1.9K0
数据库Day2:MySQL从0到1
以上实例中使用了LEFT JOIN,该语句会读取左边的数据表runoob_tbl的所有选取的字段数据,即便在右侧表tcount_tbl中没有对应的runoob_author字段值。
王中阳Go
2022/10/26
3.8K0
常用的正则表达式
. 匹配除回车(\r)、换行(\n) 、行分隔符(\u2028) 和 段分隔符(\u2029) 以外的所有字符
用户3880999
2023/04/13
1K0
常用的正则表达式
数据库表字段命名规范
数据库表字段命名规范 摘要:当前研发工作中经常出现因数据库表、数据库表字段格式不规则而影响开发进度的问题,在后续开发使用原来数据库表时,也会因为数据库表的可读性不够高,表字段规则不统一,造成数据查询,数据使用效率低的问题,所以有必要整理出一套合适的数据库表字段命名规范来解决优化这些问题。 本文是一篇包含了数据库命名、数据库表命名、数据库表字段命名及SQL语言编码的规范文档,针对研发中易产生的问题和常见错误做了一个整理和修改,为日后涉及到数据库相关的研发工作做好准备。 一、数据库命名规范 采用26个英文字母(
庞小明
2018/03/07
35K0
|ERROR|ERROR: missing data for column "createtime" (seg3 slice1 192.168.66.23:40001 pid=33370)之mys
引发这个错误,并不是这个字段引起的错误,一般是这个字段临近的字段存在空格或者换行符引发的错误。
别先生
2018/08/27
5420
|ERROR|ERROR:  missing data for column "createtime"  (seg3 slice1 192.168.66.23:40001 pid=33370)之mys
MySQL – LOAD DATA LOCAL INFILE将数据导入表中
该LOAD DATA语句以非常高的速度将文本文件中的行读入表中。 LOAD DATA是补充 SELECT ... INTO OUTFILE。要将表中的数据写入文件,请使用 SELECT ... INTO OUTFILE。要将文件读回表中,请使用 LOAD DATA。两个语句的FIELDS和LINES子句的语法 相同。
kirin
2020/11/27
4.5K0
【愚公系列】2021年12月 Python教学课程 04-字符串
字符串是 Python 中最常用的数据类型之一,使用单引号或双引号来创建字符串,使用 三引号创建多行字符串。 Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。 字符串是不可变的序列数据类型,不能直接修改字符串本身,和数字类型一样! 虽然字符串本身不可变,但可以通过方括号加下标的方式,访问或者获取它的子串,当 然也包括切片操作。这一切都不会修改字符串本身,当然也符合字符串不可变的原则。
愚公搬代码
2021/12/13
4240
【愚公系列】2021年12月 Python教学课程 04-字符串
python 字符串方法大全
字符串还支持两种类型的字符串格式化的,一个提供了很大程度的灵活性和定制(见str.format(), 格式化字符串的语法和自定义字符串格式化)和其他基于C printf风格的格式,处理范围较窄的类型,是稍硬使用正确,但对于它可以处理的情况(printf样式的字符串格式)通常更快。
用户7886150
2021/01/10
1.5K0
正则表达式详解
正则表达式(regular expression)是一种表达文本模式(即字符串结构)的方法,有点像字符串的模板,常常用来按照“给定模式”匹配文本。比如,正则表达式给出一个 Email 地址的模式,然后用它来确定一个字符串是否为 Email 地址。JavaScript 的正则表达式体系是参照 Perl 5 建立的。
IT人一直在路上
2019/09/16
1.1K0
[1022]Hive insert 字段表错位
查询来的数据没发现有什么异常;照理说逐字段查出来没问题,再逐字段插入应该不会错位。实际上 hive 的 insert 跟想象中传统的 insert 不太一样。
周小董
2021/07/14
2K0
[1022]Hive insert 字段表错位
【Go】类似csv的数据日志组件设计
我们业务每天需要记录大量的日志数据,且这些数据十分重要,它们是公司收入结算的主要依据,也是数据分析部门主要得数据源,针对这么重要的日志,且高频率的日志,我们需要一个高性能且安全的日志组件,能保证每行日志格式完整性,我们设计了一个类 csv 的日志拼接组件,它的代码在这里 datalog。
thinkeridea
2019/11/04
5150
零基础学Python--------第5章
 在Python开发过程中,为了实现某项功能,经常需要对某些字符串进行特殊处理,如拼接字符串、截取字符串、格式化字符串等。下面将对Python中常用的字符串操作方法进行介绍。
py3study
2020/01/22
1.5K0
常用Mysql或者PostGresql或者Greenplum的语句总结。
1、使用mysql的union all可以同时查询出所有自己想要查询数据表的数据量。
别先生
2018/11/09
1.2K0
Python3 字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。
py3study
2020/01/03
6890
Swift基础 字符串和字符
翻译自:https://docs.swift.org/swift-book/LanguageGuide/StringsAndCharacters.html
郭顺发
2023/07/17
1950
Swift基础 字符串和字符
Python 基础(字符串)
字符串定义 字符串是 Python中最常用的数据类型。字符串的意思就是"一串字符",比如"Hello,Charlie"是一个字符串,"How are you?"也是一个字符串。 Python要求字符串
数据STUDIO
2021/06/24
7160
MySQL 教程上
MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。
acc8226
2022/05/17
3.4K0
mysql表字段值处理回车符换行符
查询数据库时,字段值一直无法匹配上,但是看数据库,觉得没问题,仔细排查后,发现可能是数据入口有问题,导致这个字段的所有的值,后面都加的有回车和换行符。
IT云清
2019/03/20
4.9K0
mysql表字段值处理回车符换行符
4-字符串
字段宽度是转换后的值保留的最小字符个数,精度是数字转换结果中应该包含的小数位数或字符串转换后的值所能包含的最大字符个数。
用户3106371
2018/09/12
6260
4-字符串
CSV逗号分隔值格式文件(示例分析)
CSV全称Comma Separated Values是"逗号分隔值"的英文缩写.通常是纯文本文件,可以被文本编辑软件,Excel或WPS表格打开. 基本规则 开头不留空,以行为单位; 列名(标题)放在第一行(可忽略不加列名); 每一行数据以换行结束,无空行; 以半角逗号作分隔符,列为空也要表达其存在; 列内容如存在半角逗号则用半角引号("")将该字段值包含起来; 列内容如存在半角引号则需要使用半角双引号("")转义,并用半角引号("")将该字段值包含起来; 文件读写时引号,逗号操作规则互逆; 内码格式不限
Qt君
2019/07/15
3.5K0
相关推荐
mysql 去除前后空白字符
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验