Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.06.2015, 13:08
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

SQL замена подстроки
Всем привет, есть вот такой запрос

Код:
UPDATE `posts`
SET `full` = REPLACE(`full`,'%src=\"http://site.ru','%src=\"https://site.ru%')
то есть был переход на https и нужно все картинки в контенте заменить, но почему не находит ни под каким предлогом.

Код:
UPDATE `posts`
SET `full` = REPLACE(`full`,'%src="http://site.ru','%src="https://site.ru%')
Код:
UPDATE `posts`
SET `full` = REPLACE(`full`,'%src='http://site.ru','%src='https://site.ru%')
В БД это выглядит так: "src="http://site.ru/images"

Кстати вот этот запрос выводит больше ста записей:

Код:
SELECT * FROM `posts` WHERE full like '%src=\"http://site%'
Ответить с цитированием
  #2 (permalink)  
Старый 11.06.2015, 13:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Duda.Ml1986@gmail.com
В БД это выглядит так: "src="http://site.ru/images"
Если так, то почему ищется '%src="http://site.ru'? REPLACE это просто поиск строки к REGEXP отношения не имеющий. RLIKE (REGEXP) нужно использовать.
Ответить с цитированием
  #3 (permalink)  
Старый 11.06.2015, 14:02
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Можете привести пример пожалйста
Ответить с цитированием
  #4 (permalink)  
Старый 11.06.2015, 15:19
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

В MySQL нет функции preg_replace, только строковой заменой:
UPDATE table SET field = REPLACE(field, SUBSTRING_INDEX(field, 'replace_tetx', 1), SUBSTRING_INDEX(field, 'search_tetx', 1))


Если домен и постоянство, значит хватит, нет, значит нужно добавлять REGEXP.
Ответить с цитированием
  #5 (permalink)  
Старый 11.06.2015, 16:03
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Не работает. Обрезает строку неправильно
Ответить с цитированием
  #6 (permalink)  
Старый 11.06.2015, 16:14
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Известны такие вещи как процедуры и функции? Иначе дам ссылку на известную уже функцию для этой операции, но пояснять что к чему некогда, по крайней мере сегодня.
Ответить с цитированием
  #7 (permalink)  
Старый 11.06.2015, 16:47
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Я понял, в любом случае спасибо, самому пора сильнее извилины напрягать))
Ответить с цитированием
  #8 (permalink)  
Старый 11.06.2015, 21:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Самому всегда придется. Я к тому, что если в курсе, то взяли и используем, а не насилуем SQL от непонимания.

Можно пример приведенный дополнить условием WHERE REGEXP(pattern), который будет искать необходимое для замены, да и ускорит процесс отсеивая лишнее. Выражения MySQL REGEXP доступны в сети, их не так много, чтобы запутаться в них.

Последний раз редактировалось laimas, 12.06.2015 в 01:21.
Ответить с цитированием
  #9 (permalink)  
Старый 11.06.2015, 22:48
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Duda.Ml1986@gmail.com,
выгрузи таблицу в sql, открой в Notepad++, замени как надо. Загрузи обратно, пару минут работы
Ответить с цитированием
  #10 (permalink)  
Старый 12.06.2015, 01:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Poznakomlus
выгрузи таблицу в sql, открой в Notepad++, замени как надо. Загрузи обратно
А если это не содержанием определяется, а формируемые и вставляемые в содержание ссылки, то вообще не стоит такое держать в базе. )
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построение диаграмм из MS SQL Server EvgLuch Общие вопросы Javascript 5 22.01.2014 04:16
Вопрос по SQL запросу Mazai Серверные языки и технологии 11 08.08.2011 14:38
как писать правильные SQL запросы? Vuzy Серверные языки и технологии 8 16.07.2011 01:30
Загрузка данных из MS SQL в список <select> Mike1983 Firefox/Mozilla 4 27.05.2011 19:01
Установка JDBC Driver для SQL grim Общие вопросы Javascript 2 22.11.2010 08:20