UPDATE с REGEXP

Дмитрий
На сайте с 23.08.2006
Offline
222
571

Подскажите как сделать обновление таблицы с использование REGEXP. Цель - убить теги <font.*> в поле.

Разрабатываю и автоматизирую на php http://jonnyb.ru/
S
На сайте с 28.10.2005
Offline
319
#1


$s=preg_replace('/<\/?font.*>/Ui','',$s);

подойдет?...

Дмитрий
На сайте с 23.08.2006
Offline
222
#2

Нет, регвыражение прям в запросе...

Я вот до чего дошел:

UPDATE `catalog_p`

SET `txt`=REPLACE(`txt`, `txt` REGEXP "<font.*>", '')

Но пока что по нулям :(

JonnyB добавил 12.05.2008 в 15:44

Вообщем то справился с задачей локально, серез куеву тучу mysql запросов. В инете естественно такого делать незя... Если кто поможет сделать это в один запрос, буду оч благодарен :)

Progr@mmer\.
На сайте с 14.10.2007
Offline
44
#3

Если делайте апдейт, то, конечно же, запись уже присутствует в бд, значит можно:

1. выборкой взять данные,

2. В скрипте убить ненужный код,

3. Заапдейтить данные обратно.

Вашей девушке не хватает романтики? Черпните её на сайте «Я Люблю Романтику» (http://iloveromantics.ru/). Романтический форум (http://forum.iloveromantics.ru/) для отдыха от нудной работы.
Дмитрий
На сайте с 23.08.2006
Offline
222
#4
Progr@mmer\.:
Если делайте апдейт, то, конечно же, запись уже присутствует в бд, значит можно:
1. выборкой взять данные,
2. В скрипте убить ненужный код,
3. Заапдейтить данные обратно.

То что вы говорите я уже сделал, на локальной тачке.

Получается количество запросов в БД = 1 (select) + количество записей (по update на каждую), у меня их лично несколько тысяч с перспективой роста. Представляете что это значит для виртуального хостинга? :)

Поэтому и хочу это реализовать одним запросом. Кстати

`txt` REGEXP "<font.*>"

возвращает еденицу, даже если записать как

`txt` REGEXP "(<font.*>)"
, хотелось бы что бы возвращался тег font со всеми параметрами. Кто знает, в REGEXP (майскулном) есть понятие подмаски (то что в круглых скобках)? Если есть, то как получить ее значение?
B4
На сайте с 25.04.2007
Offline
34
#5
JonnyB:
Подскажите как сделать обновление таблицы с использование REGEXP. Цель - убить теги <font.*> в поле.

это не реально имхо. REGEXP возвращает 1 или 0 (true or false)

Собираю смешные фразы
Дмитрий
На сайте с 23.08.2006
Offline
222
#6

А зачем тогда, интересно, добавлен функционал с выделением части выражения в скобки. Майскул не выдает ошибки.

Ну вообщем всем спасибо, кажется это действительно нереально

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий