Мне нужно заменить части текста, используя следующий запрос:
UPDATE table_name SET field = REPLACE(field, 'old', 'new')
Проблема в том, что запрос должен заменять не «old.jpg» или «oldcar» и т. д., А ТОЛЬКО «old».
Можем ли мы использовать что-то подобное ниже?
WHERE field LIKE 'old'
Спасибо, Сахил,
Какую базу данных, СУБД вы используете?
Спасибо, Сахил, мне нужно заменить около 20 000 различных номеров элементов на 20 000 различных ссылок на связанные объекты: я подготовил xlsx с 20 000 запросов, подобных этой UPDATE table SET field = REPLACE (field, «10.300.17», «<a href = \ "link-to-product-10.300.17 / \"> 10.300.17 </a> "); он работает хорошо, но, к сожалению, заменяет также 10.300.17.jpg и так далее.
это стандартный MySQL innoDB
Почему нельзя сделать WHERE field = '10.300.17'
, он не будет соответствовать 10.300.17.jpg? Что мне не хватает?
Привет, Йоаким, и спасибо: это (довольно длинное) текстовое поле, и в этом тексте вы можете найти как «10.300.17», так и 10.300.17.jpg ». И я не могу использовать << WHERE field = '10 .300 .17 '>> потому что запрос не находит ничего для замены.
Вам может понравиться этот ответ stackoverflow.com/a/50984816/1626878