sql >> Database >  >> RDS >> Mysql

JSON_VALID() – Test voor geldige JSON in MySQL

Wanneer u MySQL gebruikt, kunt u de JSON_VALID() . gebruiken functie om te testen of een tekenreeksexpressie geldige JSON bevat.

Als de expressie geldige JSON bevat, JSON_VALID() retourneert 1 , anders retourneert het 0 .

Syntaxis

De syntaxis gaat als volgt:

JSON_VALID(val)

Waar val is de waarde waarvoor u test op geldige JSON.

Voorbeeld 1 – Geldige JSON

Hier is een voorbeeld om te demonstreren wat er gebeurt als de string geldige JSON bevat.

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

Resultaat:

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

Voorbeeld 2 – Ongeldige JSON

Hier is een voorbeeld om te laten zien wat er gebeurt als de string niet geldige JSON bevatten.

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

Resultaat:

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

Voorbeeld 3 – Een databasevoorbeeld

In deze databasequery worden de resultaten alleen geretourneerd waar de Collections.Contents kolom bevat geldige JSON.

Deze specifieke kolom gebruikt het gegevenstype json om het JSON-document op te slaan.

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

Resultaat:

+------------+
| 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"
            }
        ]
    }
]            |
+------------+

Dit is wat er gebeurt als we de instructie wijzigen om de gegevens alleen te retourneren als dit isn't geldige JSON.

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

Resultaat:

Empty set (0.00 sec)


  1. 4 manieren om te controleren of een tabel bestaat in MariaDB

  2. Hoe u alle weergaven in Oracle Database kunt weergeven

  3. TEMPFILE Offline fysieke stand-by

  4. kolom verwijderen bestaat niet