SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 10.01.2011 13:59:03

WMGo
Участник
Зарегистрирован: 10.01.2011
Сообщений: 5

Помогите составить запрос

Сделал запрос такого вида чтобы удалить строки со скриптом.

...........................

UPDATE dle_post
SET
short_story=REPLACE(short_story, '<script src="http://xxxxx.ru/engine.js" type="text/javascript"></script>', ''),
`full_story`=REPLACE(full_story, '<script src="http://xxxxx.ru/engine.js" type="text/javascript"></script>', '')
WHERE
`short_story` LIKE '%<script src="http://xxxxx.ru/engine.js" type="text/javascript"></script>%'
OR
`full_story` LIKE '%<script src="http://xxxxx.ru/engine.js" type="text/javascript"></script>%'


...........................

Нужно такойже запрос, но только скрипт с регуляркой вида

<script src="http://xxxxx.ru/тут32символа.js" type="text/javascript"></script>


32 символа постоянно разные.

Например через поиск такая комбинация срабатывает

<script src="http://xxxxx.ru/[^"]*.js " type="text/javascript"></script>


но в запросе как выше, не подходит.
Помогите верно составить запрос.

Неактивен

 

#2 10.01.2011 14:19:16

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Помогите составить запрос

В мускле регулярка не возвращает значения, т.е. вы не можете применить её результаты в новых значениях апдейта.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#3 10.01.2011 14:28:33

WMGo
Участник
Зарегистрирован: 10.01.2011
Сообщений: 5

Re: Помогите составить запрос

А как удалить этот скрипт из БД?

Неактивен

 

#4 10.01.2011 14:29:21

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Помогите составить запрос

Лично я не знаю как это можно сделать, подождём ответа гуру smile Возможно одними средствами БД не обойтись.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#5 10.01.2011 14:52:38

WMGo
Участник
Зарегистрирован: 10.01.2011
Сообщений: 5

Re: Помогите составить запрос

Через nodpad++ поиском и заменой можно было бы, но база 400 метром и он не справляется, вообще не редактирует такой обьём.
Подождём гуру.

Неактивен

 

#6 10.01.2011 15:43:35

WMGo
Участник
Зарегистрирован: 10.01.2011
Сообщений: 5

Re: Помогите составить запрос

а если сделать таким запросом?

UPDATE articles
SET
text=REPLACE(text, 'http://xxxxx.ru/', 'http://yyyyy.ru')
WHERE
`text` regexp '<script src="http://xxxxx.ru/[^"]*.js" type="text/javascript"></script>'


ну адрес заменить сайта.
Верный запрос или как запрос сделать на замену адреса сайта?

Неактивен

 

#7 10.01.2011 16:54:33

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Помогите составить запрос

/me присоединяется к ожиданию гуру wink

Я бы пытался делать через строковые функции. Но это будет страшный динозавр.
Например, такой:
UPDATE dle_post
SET short_story = CONCAT(
  LEFT(short_story, LOCATE('http://xxx.ru/', short_story) - 1),
  SUBSTR(short_story FROM LOCATE('.js', short_story, LOCATE('http://xxx.ru/', short_story))));

Неактивен

 

#8 10.01.2011 17:04:17

WMGo
Участник
Зарегистрирован: 10.01.2011
Сообщений: 5

Re: Помогите составить запрос

Попробую через скрипт php, говорят проще и надёжней, без "динозавров".
Спасибо за помощь!

Неактивен

 

#9 11.01.2011 00:54:41

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Помогите составить запрос

Да, это лучше через какие-то скрипты делать...

а запрос
UPDATE articles
SET
text=REPLACE(text, 'http://xxxxx.ru/', 'http://yyyyy.ru')
WHERE
`text` regexp '<script src="http://xxxxx.ru/[^"]*.js" type="text/javascript"></script>'
может заменить только фиксированное значение, т.е. http://xxxxx.ru/, но никак не то, что входит в [^"]*.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson