Заменяйте строку в sql только тогда, когда она не смежна с другими символами - PullRequest
3 голосов
/ 31 января 2012

Я использую MSSQL 2008 для замены значений в определенных столбцах. Мой текущий запрос:

UPDATE table  
SET name = replace(name, 'old', 'new')

Я хотел бы знать, возможно ли заменить «старый» на «новый», только если «старый» не соседствует с другими символами. То есть: только когда это действительно происходит как «старый» Это обеспечит, например, «жирный» не становится «новым»

В настоящее время я получаю результаты через JDBC, разбивая строку в разделителе (,), а затем проверяю, равна ли строка «старый». Если это так, я хочу заменить на «новый». Требуется много времени, чтобы получить все результаты и отправить их обратно, поэтому , если это возможно, только отправив SQL-оператор, содержащий «старый» и «новый», что было бы здорово!

Записи, где он должен быть заменен:

  • 'старый, blabla blabla, bla'
  • 'блабла, старая, блабла'
  • «блабла, бла старый, блабла»
  • «блабла, блабла, старая»
  • 'блабла, бла старый бла'

Записи, где его не следует заменять:

  • блейд, блабла
  • 'блабла, олдбла'

1 Ответ

1 голос
/ 31 января 2012

Используйте пробелы в ваших предложениях.

ОБНОВЛЕНИЕ [YourTable] SET name = replace (имя, «старый», «новый») ГДЕ имя = 'старый'

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