Удаляем значение из JSON-массива MySQL

270
19 июля 2017, 22:54

Как удалить значение в JSON-массиве MySQL?

options = {"cats": ["1", "10"], "tags": ["швалка", "букинг"]}
UPDATE `store`.`products`
SET `options` = JSON_REMOVE(`page_options` , '$.cats.10')
WHERE JSON_EXTRACT(`options` , '$.cats.*') = 10

Нужно, чтобы на выходе стало:

options = {"cats": ["1"], "tags": ["швалка", "букинг"]}
Answer 1

Подозреваю что у вас синтаксис JSON Path неверный. В данном случае чтобы удалить второй элемента массива cats нужен $[cats[1]]. Вам пригодится. Обратите внимание что MySQL имеет свой синтаксис JSON Path и много чего не поддерживает.

Если вам нужны сложные манипуляции над данными, то стоит хранить их в нативном формате БД, а нужные вам JSON генерировать на лету.

READ ALSO
Логика MySQL базы пользовтелей и новостей

Логика MySQL базы пользовтелей и новостей

Внутренняя почта, пользователи, новости

246
Хорошие манеры при создании web-проекта

Хорошие манеры при создании web-проекта

Я хочу сделать что-то вроде "соцсети", блог, форум, не знаю какой из терминов подобрать

215
php mysql похожие запросы

php mysql похожие запросы

Например есть запрос который выводит статьи, также есть запрос который выводит статьи по различным сортировкам (новые, старые, активные,...

327
Sonatype Nexus OSS даёт сделать upload, но на download ругается Unauthorized

Sonatype Nexus OSS даёт сделать upload, но на download ругается Unauthorized

Поднял командный репозиторий Sonatype Nexus, прописал в settingsxml его профиль и учётные данные юзверя deployment

407