MySQL найти и заменить не работает должным образом (сериализованные данные) - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь создать скрипт поиска и замены MySQL для моей таблицы базы данных 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так надеясь, что кто-то может помочь?

Спасибо

1 Ответ

0 голосов
/ 18 декабря 2018

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

...