Как заменить слово в тексте?

Статус
В этой теме нельзя размещать новые ответы.
UPDATE имя_таблицы SET имя_поля1=значение1, имя_поля2=значение2, имя_поля3=значение3;

А как различить для поля txt_fld, чтоб если там подстрока "станки и танки", "танки" заменились на "тигры", а "станки" остались? Найти - да, получится: REGEXP "[[:<]]танки[[:>:]]". А заменить как?
 
Ничего не понятно что хотите. Станки и танки это одна ячейка? И что поменять тоже не ясно. Поменять просто имя столбца или таблица уже заполнена и нужно отделить данные о станках и танках? Если последнее, то думаю ничего не выйдет, потомучто станки и танки если в одной ячейке, то это считалось как единое целое.
 
Ничего не понятно что хотите. Станки и танки это одна ячейка? И что поменять тоже не ясно. Поменять просто имя столбца или таблица уже заполнена и нужно отделить данные о станках и танках? Если последнее, то думаю ничего не выйдет, потомучто станки и танки если в одной ячейке, то это считалось как единое целое.

Таблица, единственный текстовый столбец. Некоторые записи содержат текст:
....танки......станки......
(отточия - это другие слова единственного текстового поля данной записи).

Хочется:
1. выбрать записи, содержащие "танки", но так, чтоб "станки" не мешали. Отобрать такие записи можно условием REGEXP "[[:<]]танки[[:>:]]", это просто.
2. В каждой из найденных записей слово "танки" нужно окружить тегами <b> и </b>, чтоб в полученной выборке было подсвечено, что именно нашлось. (Про замену "танки" на "тигры и пантеры" был абстрактный пример).
 
2. В каждой из найденных записей слово "танки" нужно окружить тегами <b> и </b>, чтоб в полученной выборке было подсвечено, что именно нашлось. (Про замену "танки" на "тигры и пантеры" был абстрактный пример).

Для подсветки поиcка нужен именно php'шный preg_replace.
Зачем базу то менять?
Или результаты поиска надо подсветить всем пользователям и на всегда?


Если же нужно менять базу
то чем не устроил пример с mysql.ru ?



-----------
добавлено
 
Для подсветки поиcка нужен именно php'шный preg_replace. Зачем базу то менять? Или результаты поиска надо подсветить всем пользователям и на всегда?
Тут база не меняется, SELECT же выполняется. Просто хочется подсветку найденного SELECT'ом результсета, условия которого прописываются через REGEXP, выполнять в нем же, а не обрабатывать их дополнительно скриптом на пхп. То есть тут не "навсегда", а в результсете для данной поисковой фразы пользователя.

Если же нужно менять базу то чем не устроил пример с mysql.ru ?
Пример неплохой, оказывается! Просто я его сначала не понял, первое впечатление было "бред". Но сейчас наконец-таки разобрался. Так вот, способ не идеальный, конечно. Например, он не охватывает ситуации, когда разделитель не пробел, а точка, запятая, вопросительный знак, кавычка и т.д. Например, он не найдет "танки", стоящие в конце предложения: "...грозные танки." - помешает точка в конце предложения. А описывать через колбасу REPLACE все разделители - громоздко, нереально и медленно выполняется. Только если в тексте, в котором нужно сделать "подсветку" найденного, сначала заменить все знаки препинания на пробелы, поставить пробелы в его начало и в конец - тогда способ работает. Но даже в этом случае "подсветка" найденного будет выполнена в тексте с пробелами, т.е. результсет будет отличаться от исходного текста.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху