首页 > 数据库 >MySQL 替换和截取指定位置字符串

MySQL 替换和截取指定位置字符串

时间:2023-02-14 11:01:19浏览次数:51  
标签:截取 pos 指定 PAYERPARTYCODE str MySQL 字符串

1.情景展示

  返回服务器的身份证号需要进行加密:只保留前4位和后3位,中间使用*代替,如何实现? 

2.场景分析

  需要用到的函数有:IFNULL(),IF(),LENGTH(),REPLACE(),SUBSTR(),这里重点介绍一下REPLACE()和SUBSTR()。

  REPLACE(str,from_str,to_str)

  介绍:将字符串中部分字符串替换指定的字符串,并返回替换后的整个字符串;

MySQL 替换和截取指定位置字符串_指定位置

 

  SUBSTR(str FROM pos FOR len)
  介绍:从字符串中指定位置开始截取,并截取指定长度。

MySQL 替换和截取指定位置字符串_mysql_02

  这里需要注意的是:

  不同于Java,pos的最小值是1,而不是0,并且将会从pos的位置进行截取(包含pos对应的值)。 

MySQL 替换和截取指定位置字符串_字符串_03

  另外,pos的值可以是负数,即:从后往前查,起始值为-1。  

3.解决方案

SELECT
IFNULL(
IF
(
t.PAYERPARTYTYPE = 1,
IF
(
LENGTH( T.PAYERPARTYCODE ) = 18,
REPLACE ( T.PAYERPARTYCODE, SUBSTR( T.PAYERPARTYCODE FROM 5 FOR 11 ), '***********' ),
REPLACE ( T.PAYERPARTYCODE, SUBSTR( T.PAYERPARTYCODE FROM 5 FOR 8 ), '********' )),
T.PAYERPARTYCODE -- 当PAYERPARTYTYPE不等于1时,不对PAYERPARTYCODE做处理
),
'' -- PAYERPARTYCODE为null时,将显示空
) PAYERPARTYCODE,
t.PAYERPARTYTYPE
FROM
`cz_fet_main_mz` t
WHERE
t.PAYERPARTYCODE IS NOT NULL
LIMIT 10;

MySQL 替换和截取指定位置字符串_指定位置_04

2021年11月28日13:11:47

4.mysql截取字符串

MySQL字符串截取函数:left(), right(), substring(), substring_index(), mid(), substr()。其中,mid(), substr() 等价于 substring() 函数。

left(str, length)

从字符串左侧开始截取指定长度。

right(str, length)

从字符串右侧开始截取指定长度。

substring(str, pos)与SUBSTRING(str FROM pos)

二者用法一致:从字符串指定位置开始截取,直到结束

substring(str,pos,len)与SUBSTRING(str FROM pos FOR len)

二者用法一致:从字符串指定位置开始截取,指定长度的字符串
说明:

当pos为正数时,表示:从字符串左侧开始计数并截取,起始值为1;

当pos为负数时,表示:从字符串右侧开始计数并截取,起始值为-1;

示例:

select SUBSTRing('Marydon2021',1,3);
select SUBSTRing('Marydon2021',0,3);
select SUBSTRing('Marydon2021',-1,3);

MySQL 替换和截取指定位置字符串_字符串_05

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

作者:​​Marydon​​



标签:截取,pos,指定,PAYERPARTYCODE,str,MySQL,字符串
From: https://blog.51cto.com/u_15964717/6056174

相关文章

  • linux shell 字符串处理过滤方法
    1.grep文本过滤命令grep中的正则表达式^westos#以westos开头westos$#以westos结尾'w....s''w.....''.....s'grep-E=egrep应用:cp/etc/passwd/mntc......
  • mongodb关于字符串id与ObjectId关联查询的办法
    db.ub.aggregate([{$match:{_id:ObjectId("xxxx")}},{ //提取users里面的user_id转换未ObjectId,名称定为uid$......
  • Mysql的日志系统
    MySQL整体来看,其实就有两块:一块是Server层,它主要做的是MySQL功能层面的事情;还有一块是引擎层,负责存储相关的具体事宜。如图:本次知识总结:最开始MySQL里并没有InnoDB引擎......
  • mysql 如何修改主键起始值?
    1.情景展示在实际开发中,往往会存在这种需求:将A表当中的数据导入B表,后面继续使用B表。由上一篇,我们了解到:B表如果是通过createtablebasselect*froma的方式,将会导致的......
  • mysql 临时表
    1.情景展示在实际开发过程中,当现有手段无法满足我们想要的数据时,我们就可以通过创建临时表,保存一些临时数据的方式,来用作数据的过渡。2.具体分析临时表只在当前连接可见,当关......
  • mysql 日期类型计算
    1.情景展示在进行按日期统计数据的时候,我们经常需要对日期的开始时间和结束时间有要求;在mysql中,日期字段如何进行时间的计算呢?2.to_days()to_days(日期)函数:返回从0000年(公......
  • mysql 快速备份表数据
    1.情景展示在工作过程中,我们往往会有对表数据进行备份的需求,比如说:对表数据进行大量操作时,为了以防万一,最好是将数据进行备份,以免操作不当,导致无法恢复原有的数据。2.解决方......
  • mysql 报错:Every derived table must have its own alias
    1.情景展示使用mysql对派生表查询数据的时候,报错信息如下:Everyderivedtablemusthaveitsownalias使用谷歌翻译成中文:每个派生表都必须有自己的别名。2.具体分析因为习......
  • mysql 获取系统当前时间的3种方式
    1.获取系统当前日期+时间方式一:now()方式二:sysdate()以上两种方式,对应日期类型:datetime。方式三:CURRENT_TIMESTAMP()/CURRENT_TIMESTAMP对应日期类型:timestamp。方式四:to_da......
  • mysql、oracle like查询不走索引的解决方案
    1.情景展示我们知道:无论是mysql还是oracle,只要使用like查询,就可能会面临索引失效(不走索引)的问题;下面,我们将一起来看看什么情况下,索引会失效,以及如何解决不走索引的问题。已......