Beispielanalyse der Verwendung des neuen JSON-Feldtyps in MySQL 5.7

Beispielanalyse der Verwendung des neuen JSON-Feldtyps in MySQL 5.7

Dieser Artikel veranschaulicht anhand eines Beispiels die Verwendung des in MySQL 5.7 hinzugefügten JSON-Feldtyps. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

1. Lassen Sie uns eine Tabelle erstellen und einige Daten vorbereiten

Tabelle „json_test“ erstellen (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT KOMMENTAR 'ID',
 `json` json DEFAULT NULL KOMMENTAR 'json-Daten',
 PRIMÄRSCHLÜSSEL (`id`)
)ENGINE=InnoDB STANDARD-CHARSET=utf8mb4;

2. Felder der JSON-Spalte abrufen

Rufen Sie die Felder einer JSON-Spalte mithilfe des Operators -> oder ->> ab.

Wähle ID, json->'$[0].items[0].name' aus json_test;

Wähle die ID, json->>'$[0].items[0].name' aus json_test;

Der Unterschied zwischen der Verwendung von -> und ->> besteht darin, dass das Ergebnis in Anführungszeichen gesetzt wird.

3. Einige Funktionen zur Verarbeitung von JSON

JSON_PRETTY(json_val) zeigt den JSON-Wert in einem eleganten Format an

Wähle ID, JSON_PRETTY(json) aus json_test\G;

JSON_CONTAINS(Ziel, Kandidat[, Pfad]) Bestimmt, ob der angegebene Kandidat im Ziel enthalten ist. Wenn ein Pfad angegeben ist, wird im angegebenen Pfad gesucht.

Beachten Sie: Wenn der Kandidat eine Zahl ist, muss er in einfache Anführungszeichen gesetzt werden. Handelt es sich um eine Zeichenfolge, muss er innerhalb der einfachen Anführungszeichen in doppelte Anführungszeichen gesetzt werden.

Wählen Sie JSON_CONTAINS(json->'$[0].name', '"1号basket"') aus json_test;
Wählen Sie JSON_CONTAINS(json, '"Name des Namens"', '$[0].name') aus json_test;

JSON_CONTAINS_PATH(json_doc, one_or_all, path[, path] ...) bestimmt, ob der Pfad in json_doc existiert, oder, einfacher ausgedrückt, ob der Schlüssel in json existiert

Wählen Sie JSON_CONTAINS_PATH(json, „one“, „$[0].name“, „$[0].test“) aus json_test;

Der zweite Parameter 'eins' bedeutet, dass bei Vorhandensein eines Schlüssels 1 zurückgegeben wird, andernfalls 0

Wählen Sie JSON_CONTAINS_PATH(json, 'all', '$[0].name', '$[0].test') aus json_test;

Der zweite Parameter 'all' bedeutet, dass 1 nur zurückgegeben wird, wenn alle Schlüssel vorhanden sind, andernfalls 0

JSON_SET(json_doc, path, val[, path, val] ...) fügt Daten ein oder aktualisiert sie und gibt das Ergebnis zurück

Wählen Sie JSON_SET(json, '$[0].name', 'Korb Nr. 2', '$[0].test', 'test') aus json_test;

Wir ändern den Wert von $[0].name und fügen ein Element mit dem Schlüssel test und dem Wert test hinzu

JSON_INSERT(json_doc, path, val[, path, val] ...) Fügt Daten ein und gibt das Ergebnis zurück, ersetzt aber keine vorhandenen Werte.

Wählen Sie JSON_INSERT(json, '$[0].name', 'Korb Nr. 2', '$[0].exts', 'Erweiterung') aus json_test;

Zu diesem Zeitpunkt wird $[0].name nicht aktualisiert, es wird nur ein neues Feld $[0].exts hinzugefügt.

JSON_REPLACE(json_doc, path, val[, path, val] ...) Ersetzt einen vorhandenen Wert und gibt das Ergebnis zurück

Wählen Sie JSON_REPLACE(json, '$[0].name', 'Ersetzen') aus json_test;

Ersetzen Sie den Wert in $[0].name durch den neuen Wert

JSON_REMOVE(json_doc, path[, path] ...) Daten löschen und Ergebnis zurückgeben

Wählen Sie JSON_REMOVE(json, '$[0].name') aus json_test;

Löschen Sie die Daten $[0].name

JSON_KEYS(json_doc[, path]) Alle Schlüssel im JSON-Dokument abrufen

Wählen Sie JSON_KEYS(json, '$[0]') aus json_test;

Alle Schlüssel unter dem Pfad $[0] abrufen

JSON_LENGTH(json_doc[, path]) Ruft die Länge des JSON-Dokuments ab

Wählen Sie JSON_LENGTH(json, '$[0]') aus json_test;

Ermitteln Sie die Anzahl der Elemente unter $[0]

JSON_EXTRACT(json_doc, path[, path] ...) Gibt die Daten im JSON-Dokument zurück

Wählen Sie JSON_EXTRACT(json, '$[0]') aus json_test;
Wählen Sie JSON_EXTRACT(json, '$[0].name') aus json_test;

Gibt die Daten im angegebenen Pfad des JSON-Dokuments zurück

JSON_ARRAY([val[, val] ...]) erstellt ein JSON-Array

wähle JSON_ARRAY(1, '2', true, 5.6, null, jetzt());

JSON_OBJECT([key, val[, key, val] ...]) Erstellt ein JSON-Objekt aus einem Schlüssel-Wert-Paar

wählen Sie JSON_OBJECT('Name', 'xiaoxu', 'Alter', 28, 'Größe', 1,72);

Beachten Sie, dass Schlüssel und Wert paarweise auftreten müssen.

JSON_MERGE_PATCH(json_doc, json_doc[, json_doc] ...) führt JSON-Dokumente zusammen. Wenn es doppelte Schlüssel gibt, überschreiben die letzteren Daten die früheren.

wählen Sie JSON_MERGE_PATCH('{"name":"test1"}', '{"name":"test2"}');

JSON_MERGE_PRESERVE(json_doc, json_doc[, json_doc] ...) führt JSON-Dokumente zusammen. Bei doppelten Schlüsseln werden die Werte in einem Array gespeichert.

Wählen Sie JSON_MERGE_PRESERVE('{"name":"test1"}', '{"name":"test2"}');

JSON_QUOTE(string) maskiert innere Anführungszeichen und andere Zeichen, indem sie in doppelte Anführungszeichen eingeschlossen werden

Wählen Sie JSON_QUOTE('Hallo „Welt“');

JSON_UNQUOTE(json_val) Konvertiert Escape-Zeichen zurück in normale Zeichen

wählen Sie JSON_UNQUOTE('Hallo\\t\"Welt\"');

Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „Zusammenfassung der allgemeinen MySQL-Funktionen“, „MySQL-Protokolloperationskenntnisse“, „Zusammenfassung der MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“ und „Zusammenfassung der MySQL-Datenbanksperrenkenntnisse“.

Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist.

Das könnte Sie auch interessieren:
  • Zwei Abfragemethoden, wenn der MySQL-Abfragefeldtyp JSON ist
  • Was ist schneller: MySQL-Volltextindex, gemeinsamer Index, Like-Abfrage und JSON-Abfrage?
  • Python implementiert die Übertragung mehrerer Zeilen JSON-Daten in MySQL
  • Python3 implementiert das Abrufen von Daten aus Kafka, das Parsen in das JSON-Format und das Schreiben in MySQL
  • Python-Beispiel zum Speichern von JSON-ähnlichen Daten in MySQL
  • So konvertieren Sie MySQL-Datenbankdaten mit Python in JSON-Daten
  • PHP stellt eine Verbindung zur MySQL-Datenbank her und gibt im JSON-Format aus
  • So bedienen Sie JSON-Felder in MySQL

<<:  Praktische TypeScript-Tipps, die Sie vielleicht nicht kennen

>>:  Detaillierte Erläuterung der sinnvollsten Methode zum Partitionieren der Festplatte bei der Installation des Ubuntu-Linux-Systems

Artikel empfehlen

Installation und Verwendung der Ubuntu 18.04 Serverversion (Bild und Text)

1 Schritte zur Systeminstallation Betriebssystemv...

So zeigen Sie Versionsinformationen in Linux an

So zeigen Sie Versionsinformationen unter Linux a...

Sie müssen wahrscheinlich keine Switch-Anweisungen in JavaScript verwenden

Inhaltsverzeichnis Kein Schalter, keine komplexen...

CSS-Syntax für Tabellenränder

<br /> CSS-Syntax für Tabellenränder Zu den ...

Beispiele für die Verwendung temporärer Tabellen in MySQL

Ich war in den letzten beiden Tagen etwas beschäf...

Zusammenfassung des Wissens zu CSS-Injection

Moderne Browser erlauben nicht mehr, JavaScript i...

HTML Table Tag Tutorial (47): Verschachtelte Tabellen

<br />Der Schriftsatz auf der Seite erfolgt ...

40 Webseiten-Designs mit supergroßen Schriftarten

Heutige Webdesigns neigen dazu, sehr große Schrif...

Detaillierte Erklärung des Flex-Layouts in CSS

Flex-Layout wird auch elastisches Layout genannt....

HTML-Tabellen-Tag-Tutorial (33): Attribut für vertikale Zellenausrichtung VALIGN

In vertikaler Richtung können Sie die Zellenausri...