Задать вопрос
@psiklop

Как в mysql сделать regexp_replace?

Допустим надо заменить в строке значение: g[цифра] на другое g[цифра] или просто добавить в конец строки

php работает все варианты:
echo preg_replace("/(g\d+)|$/",  "g2",  "g1",  1);
echo preg_replace("/(g\d+)|$/",  "g2",  "b",  1);
echo preg_replace("/(g\d+)|$/",  "g2",  "",  1);


в mysql работают только первые два (третий с пустой строкой не работает)
SELECT regexp_replace("g1", "(g[:digit:]+)|$", "g2", 1, 1) FROM t limit 1;
SELECT regexp_replace("b", "(g[:digit:]+)|$", "g2", 1, 1) FROM t limit 1;
SELECT regexp_replace("", "(g[:digit:]+)|$", "g2", 1, 1) FROM t limit 1;


Мелочь, а неприятная. Мне сдается в mysql виноват 4 параметр pos, он как бы указывает заменять с первого символа, а строка пустая.
  • Вопрос задан
  • 89 просмотров
Подписаться 1 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Java-разработчик
    9 месяцев
    Далее
  • GB (GeekBrains)
    Профессия Python-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы