Задать вопрос
@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, он как бы указывает заменять с первого символа, а строка пустая.
  • Вопрос задан
  • 31 просмотр
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

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

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