mysql数据库字段中存在隐藏字符CHAR(0)--解决小记

5 篇文章 0 订阅
2 篇文章 0 订阅

  在一次数据处理过程中,发现 有几条数据不能直接存储到pgsql 中,mysql 清洗数据,最后落地pgsql中, 通过报错 该数据字段中 存在ckar(0) 字符.
   经过百度 Google 发现 ,如果字符串中包含了 char(0) 的字符,字符后面内容是显示不出来的

--示例
select 
    concat('1',char(0),'2'), --隐藏了数字2
    replace(concat('1',char(0),'2'),char(0),'$') --替换char(0),后面的数字显示出来了
;


SELECT
	 real_name, --原字段数据查询显示
	 replace(ifnull(real_name,null),char(0),'$') as real_name, --替换了char(0),之后显示的数据
	 SUBSTRING_INDEX(real_name,char(0),1) as real_name, --截取char(0)之前的数据
	 LENGTH(real_name),  --截取之前的字符长度
	 LENGTH(SUBSTRING_INDEX(real_name,char(0),1)) --处理数据之后的长度
FROM labourer where id = 4611857465692091119


在这里插入图片描述
在这里插入图片描述

  • hive中处理包含char(0)字段数据

select 
	real_name,
	substring_index(real_name,chr(0),1) 
from 
	ads_gx_project_attendance_detail_transition
where length(trim(real_name))>8;

  • 结果
    在这里插入图片描述
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值