Подскажите, какая ошибка в запросе на обновление постов ?

D
На сайте с 24.06.2010
Offline
62
541

Хочу по всем постам в базе данных Wordpress таблицы постов поменять строку <span class="letter">Т</span> на Т.

Вот мой запрос

UPDATE `wp_posts` SET `post_content` = REPLACE (`post_content`, "<span class="letter">Т</span>", "Т")

Выскакивает ошибка

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'letter">Т</span>", "Т")' at line 1

Что не так ?

S
На сайте с 30.09.2016
Offline
469
#1
dikdik:
Что не так ?

С кавычками бардак.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
D
На сайте с 24.06.2010
Offline
62
#2

Я понимаю, что дело в кавычках. А как будет верно ? Там ведь атрибут(он должен быть в кавычках). Текстовая строка тоже в кавычках.

Segey
На сайте с 23.08.2005
Offline
404
#3

Глянул и понял, что нужно попробовать хотя бы так

UPDATE `wp_posts` SET `post_content` = REPLACE (`post_content`, `"<span class="letter">Т</span>"`, `"Т"`)

или так

UPDATE `wp_posts` SET `post_content` = REPLACE (`post_content`, '"<span class="letter">Т</span>"', '"Т"')



---------- Добавлено 27.05.2018 в 22:30 ----------

p.s. Таблицы нет доступной, хз куда пробовать

Brexit - уже совсем рядом. (https://about-this-model.blogspot.com/2019/03/brexit.html)
D
На сайте с 24.06.2010
Offline
62
#4

Ну я попробовал вроде так (одна кавычка),

UPDATE `wp_posts` SET `post_content` = REPLACE (`post_content`, `<span class="letter">Т</span>`, `"Т"`)

и все пошло

Еще интересует, как сразу по всем буквам сделать такую замену...

то есть не писать 10 раз

UPDATE `wp_posts` SET `post_content` = REPLACE (`post_content`, `<span class="letter">А</span>`, `"Т"`)

UPDATE `wp_posts` SET `post_content` = REPLACE (`post_content`, `<span class="letter">Б</span>`, `"Т"`)

А сразу прогнать все буквы

Segey
На сайте с 23.08.2005
Offline
404
#5
dikdik:
и все пошло

Слава тебе госпадя)

Еще интересует, как сразу по всем буквам сделать такую замену...

http://www.sql.ru/forum/270822/cikl-for

говорят у них один вид циклов, с ходу не понять как с буквами быть то....

M
На сайте с 12.11.2005
Offline
122
#6
dikdik:
то есть не писать 10 раз
UPDATE `wp_posts` SET `post_content` = REPLACE (`post_content`, `<span class="letter">А</span>`, `"Т"`);

Скопировать одну строку 33 раза и сделать замены букв руками быстрее, чем я написал этот пост.

Хинт! Можно все 33 запроса запустить сразу, а не по очереди.

Segey
На сайте с 23.08.2005
Offline
404
#7
modelist:
Скопировать одну строку 33 раза и сделать замены букв руками быстрее, чем я написал этот пост.

100% сработает бысто. Быстрее чем разобраться в SQL (месяц хотя бы, лучше два. В курсах говорят и до года....). Прям щаз - минут 40 от силы, если запрос сработал.

modelist:
Хинт! Можно все 33 запроса запустить сразу, а не по очереди.

Внимаю маэстро! )))))))))))))) Авации авации..... Хочу ответа....

M
На сайте с 12.11.2005
Offline
122
#8

Segey, в поле запроса вбиваете все 33 запроса сразу построчно, в конце каждого точка с запятой и всё. Правда иногда хостинг может не выдержать, если таблица большая и без индексов.

Segey
На сайте с 23.08.2005
Offline
404
#9
modelist:
в поле запроса вбиваете все 33 запроса сразу построчно, в конце каждого точка с запятой и всё. Правда иногда хостинг может не выдержать, если таблица большая и без индексов.

Браво, звездец. А если я в адресную строку хочу, методом POST? А правда браво, натолкнули меня на мысль....

---------- Добавлено 28.05.2018 в 00:45 ----------

p.s. modelist, кажется вам открыли как все сделать в 3 минуты...

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