Нацеливаются на элементы массива с типом данных JSON?

warik777

Пользователь
Регистрация
04.01.13
Сообщения
1
Реакции
0
Баллы
1
Всем привет,

В настоящее время я застрял в этой проблеме: скажем, у меня создана следующая таблица:

CREATE TABLE сотрудников (данные JSON);

ВСТАВИТЬ В ЦЕННОСТИ сотрудников (данных)
('{"имя": "грег", "возраст": 25}'), ('{"имя": "Джеймс", "возраст": 30}'),
('{"имя": "Джейн", "возраст": 45}'), ('{"имя": "Алекс", "возраст": 50}'),
('{"имя": "счет", "возраст": 29}'), ('{"имя": "том", "возраст": 65}');


ОБНОВЛЕНИЕ данных SET сотрудников = JSON_INSERT(data, '$.hours', JSON_ARRAY(8,10,12,16,11));

Допустим, я хочу удалить из этого массива часов внутри типа данных JSON, где час = 8. Как я могу это сделать? Единственный известный мне способ удалить элемент из массива - это знать точную позицию.

что я бы сделал примерно так:

ОБНОВЛЕНИЕ сотрудников SET data = JSON_REPLACE(data, '$.hours', JSON_REMOVE(JSON_EXTRACT(data,'$.hours'), '$[0]'))
WHERE JSON_EXTRACT(data,'$.name') = 'greg';
Нацеливаются на элементы массива с типом данных JSON?
Могу ли я в любом случае просто найти эту 8, не указывая позиции? Я пытаюсь изучить его. Я написал небольшую статью с заметками о том, как я могу его использовать. http://www.nowakowskig.com/blog/mysql-5-7-native-json-tutorial-nosql
 
Сверху Снизу