我有这样的列数据“132154646878”,我想从指定的位置替换每个列的一部分,例如:替换子项(“132154646878”,“***”,4)输出=>132***646878mysql有什么功能吗?
k2arahey1#
看起来你在找mysql的 INSERT 功能。
INSERT
INSERT(str, pos, len, newstr)
返回字符串str,子字符串从位置pos开始,len字符由字符串newstr替换。如果pos不在字符串长度内,则返回原始字符串。如果len不在字符串其余部分的长度内,则从位置pos替换字符串其余部分。如果任何参数为null,则返回null。来源https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_insert查询
SELECT INSERT("132154646878", 4, LENGTH('***'), "***");
p、 请记住,当您在newstr参数中使用多字节字符集(如utf8)时,您需要使用 CHAR_LENGTH() 而不是关闭 LENGTH() 结果
CHAR_LENGTH()
LENGTH()
| INSERT("132154646878", 4, LENGTH('***'), "***") || ----------------------------------------------- || 132***646878 |
| INSERT("132154646878", 4, LENGTH('***'), "***") |
| ----------------------------------------------- |
| 132***646878 |
db fiddle视图
1条答案
按热度按时间k2arahey1#
看起来你在找mysql的
INSERT
功能。返回字符串str,子字符串从位置pos开始,len字符由字符串newstr替换。如果pos不在字符串长度内,则返回原始字符串。如果len不在字符串其余部分的长度内,则从位置pos替换字符串其余部分。如果任何参数为null,则返回null。
来源https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_insert
查询
p、 请记住,当您在newstr参数中使用多字节字符集(如utf8)时,您需要使用
CHAR_LENGTH()
而不是关闭LENGTH()
结果db fiddle视图