2014-01-22 3 views
1

Используя только mySql, я пытаюсь заменить слово microsoft на microsoft-corp.mySql заменяет только одно слово в столбце

Я пробовал использовать этот sql, update names set names = replace(names,'microsoft','microsoft-corp'), но это заменяет каждый microsoft. Есть ли способ заставить его заменить только слово microsoft?

Исходные данные

"id" "names" 
"1"  "/microsoft" 
"2"  "/microsoft/microsoft-word" 
"3"  "/microsoft/microsoft-word/microsoft-word-tutorials" 
"4"  "/microsoft/microsoft-word/microsoft-word-tutorials/examples" 

"id" "names" 
"1"  "microsoft >" 
"2"  "microsoft > microsoft-word" 
"3"  "microsoft > microsoft-word > microsoft-word-tutorials" 
"4"  "microsoft > microsoft-word > microsoft-word-tutorials > examples" 

Ожидаемые корректные результаты

"id" "names" 
"1"  "/microsoft-corp" 
"2"  "/microsoft-corp/microsoft-word" 
"3"  "/microsoft-corp/microsoft-word/microsoft-word-tutorials" 
"4"  "/microsoft-corp/microsoft-word/microsoft-word-tutorials/examples" 

Текущие некорректные результаты, используя мой запрос выше

"id" "names" 
"1"  "/microsoft-corp" 
"2"  "/microsoft-corp/microsoft-corp-word" 
"3"  "/microsoft-corp/microsoft-corp-word/microsoft-corp-word-tutorials" 
"4"  "/microsoft-corp/microsoft-corp-word/microsoft-corp-word-tutorials/examples" 

ответ

2

Как насчет:

update names set names = replace(names,'/microsoft/','/microsoft-corp/') 

update names set names = '/microsoft-corp' where names = '/microsoft' 

update names set names = replace(names,'microsoft >','microsoft-corp >') 
+0

Эти '/' не всегда есть. В другой колонке нет косых черт. – jmenezes

+0

@jmenezes - в будущем вы можете сделать это ясно в своем вопросе. то есть путем предоставления выборочных данных, которые охватывают эти различные возможности. – Kev

+0

Справа. Так можно ли это сделать? – jmenezes

0

я бы, вероятно, сделать это в два прохода, хотя вы могли бы к нему за один проход.

update names set names = replace(names,'/microsoft/','/microsoft-corp/'); 
update names set names = '/microsoft-corp' where names = '/microsoft'; 
Смежные вопросы