Декодування типу даних json mysql

  • 13.03.16 6:36 •
  • Helldar •
  • # 279155 •
  • Хабрахабр •
  • Переклад •
  • 18 •
  • 8100

- такий же як Forbes, тільки краще.

У цьому пості ми збираємося досліджувати тип даних JSON в MySQL 5.7 і під час занурення будемо використовувати фреймворк Laravel для побудови запитів.

Декодування типу даних json mysql

Для початку, створимо нову таблицю:

І додамо кілька значень:

Зчитування показників JSON

Ми можемо прочитати значення JSON-колонки використовуючи простий синтаксис:

Отримаємо наступний результат:

Як ви, можливо, помітили, результати отримані у вигляді рядка в форматі JSON, це означає, що вам потрібно декодувати їх перед виведенням на екран.

Про синтаксис

Виконання запитів в форматі JSON здійснюється через оператор "->", зліва розміщуючи ім'я стовпця оператора, а праворуч синтаксис шляху.

Для подання документа в JSON-форматі з подальшим селектором, синтаксис PATH використовує провідну $ для вказівки на конкретні частини документа. Ось різні шляхи для отримання даних:

  • specs -> "$. colors" поверне масив квітів
  • specs -> "$. colors [0]" поверне JSON-рядок «black»
  • specs -> "$. non_existing" поверне NULL
  • specs -> "$. 'key name with space'" якщо ключ містить прогалини

Якщо ключ не є допустимим ідентифікатором ECMAScript. він повинен бути укладений в лапки всередині шляху.

Використання підстановок

Ви також можете використовувати маску для запиту значень JSON. Припустимо, ми маємо такі дані:

Запит значення в форматі JSON

Це працює також, як і в звичайних колонках MySQL. Тепер, коли ми знаємо як написати правильний шлях для запиту і / або сортування значень в JSON-форматі, подивимося деякі приклади:

Тип даних JSON в MySQL і фреймворк Laravel

Якщо Ви використовуєте фреймворк Laravel версії 5.2.23 або вище, Ви будете мати можливість вільно використовувати конструктор запитів для формування запиту в форматі JSON:

Якщо немає, то Ви потрібно використовувати ** RAW **:

У багатьох випадках, розробники вважають за краще базу даних NoSQL для специфічних особливостей, гнучкості та / або продуктивності, однак бази даних SQL є кращими і багато великих компаній покладаються на них при розробці продуктивних веб-додатків, використовуючи для цього зв'язку MySQL + (Mongo | Redis | і т.д.), але це додає складності в стек. З введенням типу даних JSON в MySQL, він став свого роду гібридної базою даних SQL-NoSQL.

від перекладача


У прикладах там, де видно «ялинки» - потрібно ставити «лапки». Це Хабр так їх обробляє.

Схожі статті