- 13.03.16 6:36 •
- Helldar •
- # 279155 •
- Хабрахабр •
- Переклад •
- 18 •
- 8100
- такий же як Forbes, тільки краще.
У цьому пості ми збираємося досліджувати тип даних JSON в MySQL 5.7 і під час занурення будемо використовувати фреймворк Laravel для побудови запитів.
Для початку, створимо нову таблицю:
І додамо кілька значень:
Зчитування показників 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.
від перекладача
У прикладах там, де видно «ялинки» - потрібно ставити «лапки». Це Хабр так їх обробляє.