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

JSON_ARRAY() – Vytvořte pole JSON ze seznamu hodnot v MySQL

V MySQL můžete použít JSON_ARRAY() funkce k vytvoření pole JSON ze seznamu hodnot. Každou hodnotu poskytujete jako samostatný argument. Každý argument se stává samostatným prvkem pole.

Funkce také přijímá prázdný seznam (tj. nezadáte žádné argumenty). V tomto případě získáte prázdné pole.

Syntaxe

Syntaxe vypadá takto:

JSON_ARRAY([val[, val] ...])

Hranaté závorky označují volitelný argument. Proto je docela rozumné používat tuto funkci bez předávání jakýchkoli argumentů.

Příklad 1 – Řetězce

Zde je příklad vrácení pole ze seznamu řetězců.

SELECT JSON_ARRAY('Hot', 'Warm', 'Cold') AS 'Result';

Výsledek:

+-------------------------+
| Result                  |
+-------------------------+
| ["Hot", "Warm", "Cold"] |
+-------------------------+

Příklad 2 – Čísla

Seznam může obsahovat také čísla:

SELECT JSON_ARRAY(1, 2, 3) AS 'Result';

Výsledek:

+-----------+
| Result    |
+-----------+
| [1, 2, 3] |
+-----------+

Příklad 3 – Smíšené typy

A může to být kombinace řetězců a čísel:

SELECT JSON_ARRAY(1, 'Warm', 3) AS 'Result';

Výsledek:

+----------------+
| Result         |
+----------------+
| [1, "Warm", 3] |
+----------------+

Příklad 4 – Prázdné řetězce

Funguje to i s prázdnými řetězci.

SELECT JSON_ARRAY(1, '', 3) AS 'Result';

Výsledek:

+------------+
| Result     |
+------------+
| [1, "", 3] |
+------------+

Příklad 5 – Prázdné seznamy

Jak bylo zmíněno, je v pořádku neposkytovat žádné argumenty. Výsledkem bude prázdné pole.

SELECT JSON_ARRAY() AS 'Result';

Výsledek:

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

Příklad 5 – hodnoty NULL

A ano, mohou být zahrnuty i hodnoty NULL.

SELECT JSON_ARRAY(1, NULL, 3) AS 'Result';

Výsledek:

+--------------+
| Result       |
+--------------+
| [1, null, 3] |
+--------------+


  1. Co je databáze, proč databáze?

  2. Přírůstkové statistiky SQL Server 2014

  3. Jak obnovit databázi z C#

  4. Jak extrahovat pouze hodnotu data z pole data v Oracle?