Mysql
 sql >> Baza danych >  >> RDS >> Mysql

JSON_TYPE() – Uzyskaj typ wartości JSON w MySQL

W MySQL funkcja JSON_TYPE() funkcja zwraca typ wartości JSON. Dokładniej, zwraca utf8mb4 ciąg znaków wskazujący typ wartości.

Podajesz wartość JSON jako argument.

Składnia

Składnia wygląda tak:

JSON_TYPE(json_val)

Gdzie json_val jest wartością JSON, dla której należy zwrócić typ. Może to być obiekt, tablica lub typ skalarny.

Przykład 1 – Obiekt

Oto przykład, kiedy wartość jest obiektem.

SET @data = '{"Name": "Homer", "Stupid": true}';
SELECT JSON_TYPE(@data) 'JSON Type';

Wynik:

+-----------+
| JSON Type |
+-----------+
| OBJECT    |
+-----------+

Przykład 2 – Tablica

Oto przykład tablicy.

SET @data = '[1, 2, 3]';
SELECT JSON_TYPE(@data) 'JSON Type';

Wynik:

+-----------+
| JSON Type |
+-----------+
| ARRAY     |
+-----------+

Przykład 3 – wyodrębnianie danych z tablicy

Możesz także uzyskać typ poszczególnych elementów w tablicy.

SET @data = '[1, 2, 3]';
SELECT 
  JSON_EXTRACT(@data, '$[1]') 'Data',
  JSON_TYPE(JSON_EXTRACT(@data, '$[1]')) 'JSON Type';

Wynik:

+------+-----------+
| Data | JSON Type |
+------+-----------+
| 2    | INTEGER   |
+------+-----------+

Przykład 4 – wyodrębnianie danych z obiektu

To samo dotyczy członków obiektu.

SET @data = '{"Name": "Homer", "Stupid": "True"}';
SELECT 
  JSON_EXTRACT(@data, '$.Stupid') 'Data',
  JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';

Wynik:

+--------+-----------+
| Data   | JSON Type |
+--------+-----------+
| "True" | STRING    |
+--------+-----------+

W takim przypadku wartością był literał ciągu "True" .

Oto kolejny przykład, ale tym razem przy użyciu wartości logicznej true .

SET @data = '{"Name": "Homer", "Stupid": true}';
SELECT 
  JSON_EXTRACT(@data, '$.Stupid') 'Data',
  JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';

Wynik:

+------+-----------+
| Data | JSON Type |
+------+-----------+
| true | BOOLEAN   |
+------+-----------+

Przykład 5 – Zapytanie do bazy danych

W tym przykładzie użyto kolumny bazy danych.

SELECT 
  Contents,
  JSON_TYPE(Contents) 'Contents',
  JSON_TYPE(JSON_EXTRACT(Contents, '$.Name')) 'Name'
FROM Collections 
WHERE CollectionId = 4;

Wynik:

+--------------------------------+----------+--------+
| Contents                       | Contents | Name   |
+--------------------------------+----------+--------+
| {"Name": "Homer", "Stupid": 1} | OBJECT   | STRING |
+--------------------------------+----------+--------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wybrać datę z kolumny datetime?

  2. Jak działa samodołączanie MYSQL?

  3. YEARWEEK() Przykłady – MySQL

  4. Wyzwalacz MySQL zapobiegający INSERT pod pewnymi warunkami

  5. Czy MySQL może zastąpić wiele znaków?