Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да заявя колона JSON в MySQL

Понякога може да се наложи да търсите JSON масив от обекти, да извлечете JSON данни или да извлечете JSON данни в MySQL. В тази статия ще разгледаме как да потърсите JSON колона в MySQL.


Как да заявя колона JSON в MySQL

Да приемем, че имате следната таблица user(id, details) където id е цяло число и първичен ключ, докато подробности е колона с тип данни JSON.

<предварително създаване на потребители на таблицата ( id int auto_increment първичен ключ, подробности json );

Ще вмъкнем следните JSON данни в нашата таблица.

вмъкнете в стойности за потребители(подробности)( '{ "page":"/" , "name":"Safari", "os":"Mac", "spend":[100, 50] "resolution":{ "x":1920, "y":1080 } }'),( '{ "page":"/products", "name":"Chrome", "os":"Windows", "spend":[ 150, 250] "резолюция":{ "x":1680, "y":1050 } }'),( '{ "страница":"/обувки", "име":"Firefox", "os":" Windows", "spend":[200 300] "резолюция":{ "x":1280, "y":800 } }');


Как да извлечем данни от колоната JSON в MySQL

MySQL предоставя два оператора ( -> и ->> ) за извличане на данни от JSON колони.

->> ще получи стойността на низа, докато -> ще извлече стойност без кавички.

Ето SQL заявката за извличане на името на браузъра от подробности колона

mysql> изберете идентификатор, подробности->>'$.name' като browser_str, подробности->'$.name' като име на браузъра от потребители;+----+----------- ---+--------------+| ID | браузър_str | име_на_браузър |+----+--------------+--------------+| 1 | "Сафари" | Сафари || 2 | "Хром" | Chrome || 3 | "Firefox" | Firefox |+----+--------------+--------------+

Както можете да видите ->> връща изход като низове в кавички, докато -> връща стойности такива, каквито са.

Можете също да използвате тези оператори в клаузата WHERE, както е показано по-долу.

mysql> изберете идентификатор, подробности->>'$.name' като browser_str, подробности->'$.name' като име на браузъра от потребители, където ->>'$.name'="Chrome";+--- -+--------------+--------------+| ID | браузър_str | име_на_браузър |+----+--------------+--------------+| 2 | "Хром" | Chrome |+----+--------------+--------------+

Ако искате да извлечете resolution.x стойност, тоест от обект, тогава можете да го направите с помощта на оператора точка (.), както е показано по-долу.

mysql> изберете подробностиs->'$.resolution.x' като ширина от потребителите;+----+-----------+| ID | ширина |+----+-----------+| 1 | 1920 || 2 | 1680 || 3 | 1280 |+----+-----------+

По същия начин, ако искате да извлечете елемент на масив от JSON, тогава можете да получите достъп до тях, като използвате квадратни скоби „[ ]“ и индекс на елемента на масива. Ето SQL заявката за извличане на първия елемент от масива spend .

mysql> изберете подробностиs->>'$.spend[0]' като разходи от потребители;+----+-----------+| ID | харчи |+----+-----------+| 1 | 100 || 2 | 150 || 3 | 200 |+----+-----------+


Извличане на JSON с помощта на Ubiq

Инструментът за отчитане на Ubiq поддържа всички горепосочени SQL заявки и улеснява визуализирането на SQL резултатите по различни начини. Ето първата SQL заявка, спомената по-горе, в Ubiq.

Нуждаете се от инструмент за отчитане за MySQL? Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кой тип данни на MySQL да използвате за съхранение на булеви стойности

  2. Добавете сортиране по страници и търсене с помощта на jquery datatable

  3. Как да създадете нова диаграма на база данни с помощта на MySQL Workbench

  4. Как да съединя две таблици mysql?

  5. TO_DAYS() Примери – MySQL