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

JSON_VALID() – Test na platný JSON v MySQL

Při používání MySQL můžete použít JSON_VALID() funkce pro testování, zda řetězcový výraz obsahuje platný JSON.

Pokud výraz obsahuje platný JSON, JSON_VALID() vrátí 1 , jinak vrátí 0 .

Syntaxe

Syntaxe vypadá takto:

JSON_VALID(val)

Kde val je hodnota, pro kterou testujete platný JSON.

Příklad 1 – platný JSON

Zde je příklad demonstrující, co se stane, když řetězec obsahuje platný JSON.

SELECT JSON_VALID('{"Name": "Bart"}') AS Result;

Výsledek:

+--------+
| Result |
+--------+
|      1 |
+--------+

Příklad 2 – Neplatný JSON

Zde je příklad, který demonstruje, co se stane, když řetězec není obsahovat platný JSON.

SELECT JSON_VALID('Name: Bart') AS Result;

Výsledek:

+--------+
| Result |
+--------+
|      0 |
+--------+

Příklad 3 – Příklad databáze

V tomto databázovém dotazu jsou výsledky vráceny pouze tam, kde je Collections.Contents sloupec obsahuje platný JSON.

Tento konkrétní sloupec používá datový typ json k uložení dokumentu JSON.

SELECT Contents
FROM Collections
WHERE JSON_VALID(Contents) = 1;

Výsledek:

+------------+
| Contents   |
|------------|
| [
    {
        "ArtistName": "AC/DC",
        "Albums": [
            {
                "AlbumName": "Powerage"
            }
        ]
    },
    {
        "ArtistName": "Devin Townsend",
        "Albums": [
            {
                "AlbumName": "Ziltoid the Omniscient"
            },
            {
                "AlbumName": "Casualties of Cool"
            },
            {
                "AlbumName": "Epicloud"
            }
        ]
    },
    {
        "ArtistName": "Iron Maiden",
        "Albums": [
            {
                "AlbumName": "Powerslave"
            },
            {
                "AlbumName": "Somewhere in Time"
            },
            {
                "AlbumName": "Piece of Mind"
            },
            {
                "AlbumName": "Killers"
            },
            {
                "AlbumName": "No Prayer for the Dying"
            }
        ]
    }
]            |
+------------+

Zde je to, co se stane, pokud změníme příkaz tak, aby vracel data pouze v případě, že isn't platný JSON.

SELECT Contents
FROM Collections
WHERE JSON_VALID(Contents) = 0;

Výsledek:

Empty set (0.00 sec)


  1. Jak získám aktuální rok pomocí SQL na Oracle?

  2. Výzvy škálování databáze MySQL Moodle

  3. Upgrade datové platformy SQL Server v roce 2015

  4. Různé reprezentace UUID v Java Hibernate a SQL Server