Im пытается выяснить, как добавить нуль к определенному значению JSON-декодированного массива для нескольких записей, хранящихся в таблице MySQL, в соответствии с некоторыми условиями.Добавить значение в параметр массива декодирования JSON, хранящийся в MySQL
например, для таблицы «меню», столбец «PARAMS» (текст) есть записи, содержащие JSON декодируются массивы этого формата:
{"categories":["190"],"singleCatOrdering":"","menu-anchor_title":""}
и столбец «Идентификатор» имеет числовое значение 90.
моя цель состоит в том, чтобы добавить ноль к значению «категориям» в menu.params всякий раз, когда (например) menu.id под 100.
для этого записывает результат будучи
{"categories":["1900"],"singleCatOrdering":"","menu-anchor_title":""}
поэтому им требуется SQL-запрос, который будет искать и находить вхождения «категорий»: [«999»] в базе данных и обновлять запись, добавляя нуль в конец значения.
этот answer частично полезен, предлагая использовать mysql-udf-regexp, но его ссылка на ЗАМЕНИТЬ значение, а не ОБНОВЛЕНИЕ. возможно REGEXP_REPLACE? функция сделает трюк. Я никогда не использовал эту библиотеку и не знаком с ней, возможно, есть более простой способ добиться того, что мне нужно?
Благодаря
Переключить на MariaDB; он совместим с MySQL, но также имеет функции манипуляции JSON. –
Привет @RickJames, его хорошая идея, но в настоящее время я не могу, работа, которую я делаю, является ее частью Joomla CMS, которая использует MySQL ... – buzibuzi
Joomla не должна замечать разницу. (Нет, у меня нет _real_ доказательств, подтверждающих это утверждение.) –