sql запрос на замену - PullRequest
       4

sql запрос на замену

0 голосов
/ 25 апреля 2020

У меня есть строка в поле моего описания в MySQL, например:

"текст текстовый текст проход: 123456789 текст текстовый текст"

Я хочу замените 4 символа после «pass:» на звезду. результат:

"текстовый текст текстовый пароль: **** 56789 текстовый текстовый текст"

Я использую это

UPDATE table_name SET field = REPLACE(description , '123456789', '****56789') WHERE field LIKE '%123456789%';

при смене пароля мой запрос не работает

1 Ответ

1 голос
/ 25 апреля 2020

Как уже упоминалось в моем комментарии, вы можете сделать это с REGEXP_REPLACE, предполагая, что ваш комментарий относится к MariaDB вместо mysql более правильно.

Итак, учитывая ваш пример, я напишу следующее утверждение:

UPDATE table_name SET field = REGEXP_REPLACE(description , '\bpass:\w{4}', 'pass:****') WHERE field LIKE '%123456789%';

Если вы не знакомы с регулярным выражением, то, что это делает в основном:

  • поиск слова, которое начинается с «pass:», а затем имеет четыре дополнительных символа после него в границе слова.
  • замените найденные строки на «pass: ****»

Слово в регулярных выражениях - кстати. то, что содержит alphanumeri c и символы подчеркивания. Допустимыми являются, например, «This_is_1_word», «Word», «123153».

Так что мой пример будет работать только с паролями, которые содержат только упомянутые алфавитные символы c и символы подчеркивания.

Чтобы удовлетворить любые потребности, вам необходимо указать, какие символы разрешены для пароля. Я мог бы адаптировать данное регулярное выражение на основе ваших спецификаций

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