MySQL ви позволява да съхранявате JSON данни в родния тип данни JSON от версия 5.7.8. Това ви позволява лесно да съхранявате JSON документи и да извличате JSON елементи от данни без преобразуване на данни. В тази статия ще разгледаме как да съхраняваме JSON данни в MySQL.
Типът данни MySQL JSON ви позволява да съхранявате JSON данни, така че да можете лесно да четете или търсите стойности в тях, като използвате индекс на ключ или масив, което го прави наистина бърз. Не е необходимо да конвертирате текст в JSON или обратно за заявка за данни.
Как да съхранявате JSON данни в MySQL
Ще разгледаме как да съхраняваме JSON данни в MySQL, както и как да заявяваме колони с тип данни JSON.
Ето синтаксиса за дефиниране на JSON колона
JSON име_на_колона
Моля, имайте предвид, че колоната с тип данни JSON не може да има стойност по подразбиране, нито може да има индекс.
Прочетете също:Как да сравнявате нулеви стойности в MySQL
Пример за тип данни на MySQL JSON
Ето пример за таблица потребители(идентификатор, подробности) където id е цяло число и първичен ключ, докато подробности е колона с тип данни JSON.
<предварително създаване на потребители на таблицата ( id int auto_increment първичен ключ, подробности json );
Как да вмъкна JSON в MySQL
Ето SQL заявката за съхраняване на JSON документ в MySQL.
вмъкнете в потребители(подробности) стойности( '{ "page":"/" , "name":"Safari", "os":"Mac", "spend":100, "resolution":{ "x ":1920, "y":1080 } }'),( '{ "page":"/products", "name":"Chrome", "os":"Windows", "spend":150, "resolution ":{ "x":1680, "y":1050 } }'),( '{ "page":"/shoes", "name":"Firefox", "os":"Windows", "spend" :200, "резолюция":{ "x":1280, "y":800 } }');
Ще извлечем данни от JSON колони с помощта на оператор за път на колона (->)
Ето пример за извличане на имена на браузър за всеки потребител.
mysql> изберете идентификатор, подробности->'$.name' подробности от потребители;+----+-----------+| ID | подробности |+----+-----------+| 1 | "Сафари" || 2 | "Хром" || 3 | "Firefox" |+----+----------+3 реда в комплект (0,00 сек)
Ще видите, че колоните с подробности имат двойни кавички. Ако искате да премахнете двойните кавички, използвайте вместо това оператор ->>
mysql> изберете идентификатор, подробности->>'$.name' подробности от потребители;+----+-----------+| ID | подробности |+----+-----------+| 1 | Сафари || 2 | Chrome || 3 | Firefox |+----+-----------+3 реда в комплект (0,00 сек)
Можете също да агрегирате JSON данни GROUP BY клауза и функции за агрегиране. Ето пример за преброяване на броя на браузърите в нашите данни.
mysql> ИЗБЕРЕТЕ подробности->>'$.name' подробности,count(detail)FROM usersGROUP BY подробности->>'$.name';
Ще видите следния изход
+--------+----------------+| подробности | брой (подробности) |+---------+----------------+| Сафари | 1 || Firefox | 1 || Chrome | 1 |+---------+----------------+3 реда в комплект (0,02 сек)
По същия начин можете също да използвате JSON данни в клаузата WHERE. Ето пример за избор на данни с разходи> 100
mysql> ИЗБЕРЕТЕ идентификНадяваме се, че тази статия ще ви помогне да работите с JSON данни в MySQL. Ubiq улеснява визуализирането на данни и наблюдението им в табла за управление в реално време. Опитайте Ubiq безплатно.