Как заменить две подстроки в одном поле и вставить результат в другое поле в MySQL - PullRequest
0 голосов
/ 17 мая 2019

У меня есть поле oldCol, которое содержит строку, разделенную , (запятая).Я только что обнаружил, что это неудобно, поскольку , может существовать в URL.Поэтому я хочу заменить его символом, который никогда не появится в URL-адресе, например >:

https://11.com/,http://2,2.com/
https://aa.com/,https://www.bb,b.com/,http://www.abcc.org/homePage

Запятая разделителя, которую я хочу заменить, помещается перед http или https.Я не хочу менять исходный столбец.Поэтому я создал новый newCol и хочу установить его значение в измененном столбце.Поэтому я написал:

UPDATE tbl
SET  newCol = replace(oldCol, ',https://', '>https://');

Но проблема в том, что вышеприведенное утверждение охватывает только https://, и мне нужно также заменить их на http:// одновременно, так что значение newCol состоит изoldCol с разделительными запятыми, преобразованными в >.То есть newCol в приведенном выше примере:

https://11.com/>http://2,2.com/
https://aa.com/>https://www.bb,b.com/>http://www.abcc.org/homePage

1 Ответ

0 голосов
/ 17 мая 2019

Вы можете заменить дважды:

UPDATE tbl
    SET newCol = replace(replace(oldCol, ',https://', '>https://'), ',http://', '>http://');
...