Поиск и замена MySQL не работают должным образом (сериализованные данные)

Я пытаюсь создать сценарий поиска и замены MySQL для моей таблицы db wp_postmeta.

Мне нужно найти эти поля, похожие на это.

a:2:{i:0;a:3:{s:4:"name";s:15:"Personalisation";s:4:"type";s:7:"heading";s:11:"description";s:0:"";}i:1;a:13:{s:4:"name";s:8:"Initials";s:12:"title_format";s:5:"label";s:4:"type";s:11:"custom_text";s:17:"restrictions_type";s:8:"any_text";s:11:"description";s:0:"";s:18:"description_enable";i:0;s:8:"required";i:1;s:3:"min";s:1:"1";s:3:"max";s:1:"4";s:12:"restrictions";i:1;s:5:"price";s:1:"3";s:10:"price_type";s:14:"quantity_based";s:12:"adjust_price";i:1;}}

и замените "required";i:1; на "required";i:0;

Я использую phpmyadmin для создания и запуска скрипта, но пока я не могу получить то, что я написал, для запуска с точками с запятой.

Это то, что я придумал до сих пор;

UPDATE wp_postmeta
SET meta_value = replace(meta_value, '"required";i:1;', '"required";i:0;')
WHERE meta_key = '_product_addons';

и получите сообщение об ошибке (удаление точки с запятой исправляет это, но ничего не соответствует):

 #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''"required")' at line 1

Я пробовал использовать \, чтобы избежать их, и это не сработало, это примерно насколько я знаю MySQL, так что надеюсь, что кто-то может помочь?

Спасибо

Почему бы вам не попробовать объявить поиск и замену строк как переменные? Например, SET @search = '"required";i:1;', а затем выберите его и посмотрите результат, затем сделайте то же самое для строки замены и повторите попытку?

Daniel 18.12.2018 12:49
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
1
39
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хорошо, я обнаружил, что это действительно работает нормально, но не будет работать при использовании опции Simulate, может ли кто-нибудь объяснить, почему это так?

Другие вопросы по теме