Вот пример таблицы:
Я пытаюсь написать оператор SQL (MS SQL), который будет искать записи, содержащие указанную c строку и затем заменяющую эту строку новой строкой.
В этом примере, скажем, мы хотим видеть все записи, которые:
- содержат строку : "~ / main / fruits / яблок"
- Заменить "содержит строку" строкой: "~ / main / fruits / stuff"
Система должна редактировать идентификаторы записей: 4, 7 и 8 следующим образом:
Моя неудачная попытка заключается в следующем:
UPDATE mydb.dbo.test
SET [FILE_PATH] =
(
SELECT REPLACE('~/main/fruits/apples', 'apples', 'stuff') WHERE ([FILE_PATH] LIKE '~/main/fruits/apples%')
)
WHERE ([FILE_PATH] LIKE '~/main/fruits/apples%');
Проблема с приведенным выше утверждением заключается в том, что для идентификаторов 7 и 8 он исправляет их до одинаковых: '~ / main / fruits / stuff'