sql >> Databáze >  >> RDS >> Mysql

JSON_TYPE() – Získejte typ hodnoty JSON v MySQL

V MySQL je to JSON_TYPE() funkce vrací typ hodnoty JSON. Přesněji řečeno, vrací utf8mb4 řetězec označující typ hodnoty.

Jako argument zadáte hodnotu JSON.

Syntaxe

Syntaxe vypadá takto:

JSON_TYPE(json_val)

Kde json_val je hodnota JSON, pro kterou se má vrátit typ. Může to být objekt, pole nebo skalární typ.

Příklad 1 – Objekt

Zde je příklad, kdy je hodnotou objekt.

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

Výsledek:

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

Příklad 2 – Pole

Zde je příklad pole.

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

Výsledek:

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

Příklad 3 – Extrahování dat z pole

Můžete také získat typ jednotlivých prvků v poli.

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

Výsledek:

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

Příklad 4 – Extrahování dat z objektu

Totéž platí pro členy objektu.

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

Výsledek:

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

V tomto případě byla hodnota řetězcový literál "True" .

Zde je další příklad, ale tentokrát s použitím booleovské hodnoty true .

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

Výsledek:

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

Příklad 5 – Databázový dotaz

Tento příklad používá sloupec databáze.

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

Výsledek:

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

  1. Ořízněte koncové mezery pomocí PostgreSQL

  2. Jak psát uložené procedury pro profesionální zprávy SSRS

  3. Jak zobrazit obrázek z databáze pomocí php

  4. Dotaz SQL pro 7denní klouzavý průměr v SQL Server