我有看起来像这样的列数据“ 132154646878” 我想从指定位置替换每个部分的一部分 像这样:
substr_replace(“ 132154646878”,“ ***”,4)
输出=> 132 *** 646878
MySQL中有任何功能吗?
答案 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 |