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


    1.情景展示

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

    2.场景分析

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

      REPLACE(str,from_str,to_str)

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

     

      SUBSTR(str FROM pos FOR len)
      介绍:从字符串中指定位置开始截取,并截取指定长度;这个函数的用法和Oracle是不一样的。

      这里需要注意的是:

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

      另外,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;
    

    写在最后

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

     相关推荐:

  • 相关阅读:
    Java网络技术-待续
    Java输入输出技术
    Java数据库技术
    Java安全技术
    Java异常、事件、多线程
    网站产品设计
    C#-委派和事件
    Quartz 触发器(SimpleTrigger&CronTrigger )配置说明 & cronExpression表达式 转
    weblogic出现response already committed(转)
    Weblogic二种修改端口的方法(转)
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/15009778.html
Copyright © 2020-2023  润新知