Есть ли что-то вроде substr_replace в MySQL? - PullRequest
0 голосов
/ 02 октября 2018

У меня есть данные столбца, которые выглядят так: «132154646878», и я хотел бы заменить часть каждой из указанной позиции на что-то вроде:

substr_replace («132154646878», «***", 4)

Выход => 132 *** 646878

Какие-либо функции в MySQL?

1 Ответ

0 голосов
/ 02 октября 2018

Похоже, вы ищете функцию MySQL INSERT.

INSERT(str, pos, len, newstr)

Возвращает строку str с подстрокой, начинающейся в позиции pos, и длиной символов len, заменяемой строкой newstr.Возвращает исходную строку, если pos не находится в пределах длины строки.Заменяет остальную часть строки из позиции pos, если len не находится в пределах длины остальной части строки.Возвращает NULL, если любой аргумент равен NULL.

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

Запрос

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

пс.что при использовании многобайтовой символьной кодировки, такой как utf8, в параметре newstr вам необходимо использовать CHAR_LENGTH() вместо off LENGTH()

Result

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

Просмотр на БД Fiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...