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

JSON_KEYS() – Връща ключовете от JSON обект в MySQL

В MySQL, JSON_KEYS() функцията връща ключове от стойността на най-високото ниво на JSON обект. Ключовете се връщат като JSON масив или, ако е path е даден аргумент, ключовете от най-високо ниво от избрания път.

Вие предоставяте JSON документа като аргумент на функцията.

Можете също (по избор) да предоставите втори аргумент, за да посочите откъде започва пътят на „най-високо ниво“ в JSON документа.

Синтаксис

Синтаксисът е така:

JSON_KEYS(json_doc[, path])

Където json_doc е JSON документът и path е незадължителен аргумент, за да се определи къде започва пътят от „горно ниво“ в JSON документа.

Резултатът е празен, ако избраният обект е празен. Ако стойността от най-високо ниво има вложени подобекти, върнатата стойност не включва ключове от тези подобекти.

Пример 1 – Основна употреба

Ето пример за демонстрация.

SELECT JSON_KEYS('{"a": 1, "b": 2, "c": 3}') AS 'Result';

Резултат:

+-----------------+
| Result          |
+-----------------+
| ["a", "b", "c"] |
+-----------------+

Ето още един пример:

SELECT 
  JSON_KEYS('{"Name": "Bart", "Age": 10}') AS 'Result';

Резултат:

+-----------------+
| Result          |
+-----------------+
| ["Age", "Name"] |
+-----------------+

Пример 2 – Посочете път

Ето пример за посочване на път. Това ни позволява да получим ключовете от вложен обект (вместо да бъдем ограничени само до обекта от най-високо ниво на целия JSON документ).

SELECT 
  JSON_KEYS('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.c') AS 'Result';

Резултат:

+-----------------+
| Result          |
+-----------------+
| ["d", "e", "f"] |
+-----------------+

Пример 3 – Несъществуващ път

Ако посочите път, който не съществува, се връща стойност NULL.

SELECT 
  JSON_KEYS('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.z') AS 'Result';

Резултат:

+--------+
| Result |
+--------+
| NULL   |
+--------+

Освен това ще получите стойност NULL, ако някой от аргументите е NULL или ако първият аргумент не е JSON обект.

Пример 4 – Масиви

Масивите не са обекти и не съдържат двойки ключ/стойност. Следователно, вие ще получите стойност NULL, ако се опитате да върнете ключове от масив.

SELECT JSON_KEYS('[1, 2, 3]') AS 'Result';

Резултат:

+--------+
| Result |
+--------+
| NULL   |
+--------+

Въпреки това, ако някой от елементите на масива съдържа обект, все още можете да използвате path аргумент за получаване на ключовете от този обект.

SELECT JSON_KEYS('[1, 2, {"a": 1, "b": 2}]', '$[2]') AS 'Result';

Резултат:

+------------+
| Result     |
+------------+
| ["a", "b"] |
+------------+

Пример 5 – Празни обекти

Ако избраният обект е празен, ще получите празен масив.

SELECT JSON_KEYS('{}') AS 'Result';

Резултат:

+--------+
| Result |
+--------+
| []     |
+--------+

  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. Как да изпращате имейл от MySQL 5.1

  3. MySQL проверява дали съществува таблица, без да хвърля изключение

  4. Как да изберете първия ред за всяка група в MySQL?

  5. Балансиране на натоварването на базата данни в облака - MySQL Master Failover с ProxySQL 2.0:Част първа (внедряване)