在MySQL中有类似substr_replace的东西吗?

时间:2018-10-02 09:53:55

标签: mysql function

我有看起来像这样的列数据“ 132154646878” 我想从指定位置替换每个部分的一部分 像这样:

  

substr_replace(“ 132154646878”,“ ***”,4)

     

输出=> 132 *** 646878

MySQL中有任何功能吗?

1 个答案:

答案 0 :(得分:5)

好像您正在寻找MySQL的INSERT函数。

INSERT(str, pos, len, newstr)
  

返回字符串str,子字符串从pos位置开始   和len个字符,长为字符串newstr。返回   如果pos不在字符串长度内,则为原始字符串。   如果len不在pos中,则从位置pos替换字符串的其余部分   字符串其余部分的长度。如果有任何参数,则返回NULL   空。

来源https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_insert

查询

SELECT INSERT("132154646878", 4, LENGTH('***'), "***");

请记住,在newstr参数中使用utf8之类的多字节字符字符集时,需要使用CHAR_LENGTH()而不是LENGTH()

结果

| INSERT("132154646878", 4, LENGTH('***'), "***") |
| ----------------------------------------------- |
| 132***646878                                    |

View on DB Fiddle