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

  • Автор темы warik777
  • 49
  • Обновлено
  • 18, May 2024
  • #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';

Могу ли я в любом случае просто найти эту 8, не указывая позиции? Я пытаюсь изучить его. Я написал небольшую статью с заметками о том, как я могу его использовать. http://www.nowakowskig.com/blog/mysql-5-7-native-json-tutorial-nosql

warik777


Рег
04 Jan, 2013

Тем
1

Постов
3

Баллов
13
Тем
49554
Комментарии
57426
Опыт
552966