Anweisungen zur Verwendung von JSON-Operationsfunktionen in Mysql5.7

Anweisungen zur Verwendung von JSON-Operationsfunktionen in Mysql5.7

Vorwort

JSON ist ein leichtes Datenaustauschformat, das ein sprachunabhängiges Textformat verwendet, das XML ähnelt, aber einfacher als XML sowie leichter zu lesen und zu schreiben ist. Es lässt sich für Maschinen einfacher analysieren und generieren und reduziert die Netzwerkbandbreite bei der Übertragung.

Das Format von JSON ist sehr einfach: Name/Schlüssel-Wert. In früheren MySQL-Versionen wurde zur Implementierung eines solchen Speichers entweder VARCHAR oder TEXT großer Text verwendet. Nach der Veröffentlichung von MySQL 5.7 wurden der JSON-Datentyp sowie das Abrufen und andere Funktionsparsing dieses Typs speziell entwickelt.

Lassen Sie es uns in die Praxis umsetzen.

Erstellen einer Tabelle mit einem JSON-Feld

Beispielsweise enthält eine Tabelle „Artikel“ folgende Felder:

ID, Titel, Tags

Ein Artikel kann mehrere Tags haben und Tags können auf den JSON-Typ gesetzt werden

Die Anweisung zur Tabellenerstellung lautet wie folgt:

CREATE TABLE Artikel` (
 id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
Titel` varchar (200) NICHT NULL,
 Tags` json DEFAULT NULL ,
PRIMÄRSCHLÜSSEL (`id`)
)ENGINE=InnoDB;

Einfügen von Daten

Um Daten mit JSON-Inhalt einzufügen, führen Sie die Insert-Anweisung aus:

INSERT INTO Artikel` (`Titel`, `Tags`)
WERTE (
„Mysql JSON erleben“,
'["Mysql", "Datenbank"]'
);

Was hier eingefügt wird, ist ein JOSN-Array ["Mysql", "Database"]

Fragen Sie den gesamten Inhalt der Artikeltabelle ab und Sie können die neu eingefügten Daten sehen.

Abfrage

Verwenden von JSON-Funktionen zum Ausführen zweier einfacher Abfragen

1. Alle Artikel mit dem Tag "MySQL" finden

SELECT * FROM Artikel`
WO JSON_CONTAINS(Tags, '["Mysql"]');

2. Artikel mit Tags finden, die mit „Daten“ beginnen

SELECT * FROM Artikel`
WO JSON_SEARCH(Tags, „eins“, „Data%“) NICHT NULL IST;

Die Bedeutung der drei Parameter in der JSON_SEARCH-Funktion:

1. Zu findende Dokumente

2. Für den Suchbereich gibt es zwei Optionen: „eins“, um den ersten zu finden, der die Bedingungen erfüllt, und „alle“, um alle zu finden, die die Bedingungen erfüllen.

3. Suchbedingungen

JSON-Pfad

Der JSON-Pfad wird verwendet, um das Zielfeld im Dokument zu lokalisieren, zum Beispiel:

WÄHLEN SIE JSON_EXTRACT(
'{"id": 1, "name": "mysql"}',
'$.name'
);

Das Ergebnis ist:mysql

JSON_EXTRACT() ist eine JSON-Extraktionsfunktion. $.name ist ein JSON-Pfad, d. h. das Namensfeld des gefundenen Dokuments.

Der JSON-Pfad beginnt mit $. Sehen wir uns einige weitere Beispiele an.

{
"Zahl" : 123,
"arr" : [1, 2],
"Objekt" : {
"ein" : 3,
"b" : 4
}
}
$.num //Ergebnis: 123
$.arr //Ergebnis: [1, 2]
$.arr[1] //Ergebnis: 1
$.obj.a //Ergebnis: 3
$**.b //Ergebnis: 4

Abfragebeispiel mit JSON-Pfad

WÄHLEN
tags-> "$[0]" als 'Tag'
VON Artikel`;

Daten aktualisieren

Möchte man beispielsweise einem Artikel ein „dev“-Tag hinzufügen, so ist als Update-Voraussetzung, dass dieser bereits das „MySQL“-Tag enthält und noch keine Daten mit dem „dev“-Tag vorhanden sind.

Die Update-Anweisung lautet wie folgt:

Artikel aktualisieren`
SET-Tags = JSON_MERGE(Tags, '["dev"]')
WO
JSON_SEARCH(Tags, 'eins', 'dev') IST NULL
UND
JSON_SEARCH(Tags, „eins“, „Mysql“) ist nicht NULL;

Sie können sehen, dass das Tag „dev“ erfolgreich hinzugefügt wurde

Wenn Sie beispielsweise das Tag „Mysql“ auf „Mysql 5.7.13“ aktualisieren möchten, lautet die Update-Anweisung wie folgt:

UPDATE article` set tags = JSON_SET(tags, '$[0] ', 'Mysql 5.7.13' ) ;

Wir haben oben JSON_MERGE und JSON_SET kennengelernt. Es gibt viele andere Funktionen zum Ändern von JSON, wie zum Beispiel:

JSON_INSERT(doc, path, val[, path, val]…)

Einfügen von Daten

JSON_REPLACE(doc, path, val[, path, val]…)

Ersetzen von Daten

JSON_ARRAY_APPEND(doc, path, val[, path, val]…)

Daten an das Ende eines Arrays anhängen

JSON_REMOVE(doc, path[, path]…)

Daten vom angegebenen Speicherort entfernen

Aufgrund meiner anfänglichen Erfahrungen mit der Bedienung habe ich den Eindruck, dass die JSON-Bedienung von MySQL relativ reibungslos verläuft. Es ist wirklich praktisch, die Dokumentstruktur in MySQL in Zukunft zu verwenden.

Das könnte Sie auch interessieren:
  • Grundlegender JSON-Betriebsleitfaden in MySQL 5.7
  • Details zur Verwendung des JSON-Typs in MySQL 5.7
  • Eine kurze Erläuterung zum Abrufen des JSON-Formats in MySQL 5.7
  • So fragen Sie JSON in der Datenbank in MySQL 5.6 und darunter ab
  • Detaillierte Erläuterung der JSON-Serienoperationsfunktionen in MySQL
  • MySQL-Operationen: Operationen mit JSON-Datentyp
  • MySQL-Einfügungsproblem bei JSON
  • Detailliertes Beispiel für die JSON-Analyse mit MySQL (5.6 und darunter)
  • Beispielanalyse der Verwendung des neuen JSON-Feldtyps in MySQL 5.7

<<:  Beispiel für eine automatische Importmethode für allgemeine Vue3.0-Komponenten

>>:  Lösung für den Fehler bei der Installation von Docker auf der CentOS-Version

Artikel empfehlen

So verwenden Sie weniger im WeChat-Applet (optimale Methode)

Vorwort Ich bin es gewohnt, Less/Sass zu schreibe...

JavaScript-Flusskontrolle (Verzweigung)

Inhaltsverzeichnis 1. Prozesskontrolle 2. Sequent...

Die CSS-Priorität der Webseite wird für Sie ausführlich erklärt

Bevor wir über die CSS-Priorität sprechen, müssen...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.18

In diesem Artikel wird das grafische Tutorial zur...

Vue implementiert eine Zeit-Countdown-Funktion

In diesem Artikelbeispiel wird der spezifische Co...

HTML-Elemente durch Anzeige oder Sichtbarkeit verbergen

Manchmal müssen wir steuern, ob HTML-Elemente auf ...

Jmeter stellt eine Verbindung zum Datenbankprozessdiagramm her

1. Laden Sie den MySQL-JDBC-Treiber (mysql-connec...

Zusammenfassung der Datenspeicherstruktur des Nginx-HTTP-Moduls

Ab diesem Abschnitt erklären wir das Implementier...

Lösen Sie das Problem, dass ifconfig im Docker nicht verfügbar ist

Als ich kürzlich Docker lernte, stellte ich fest,...

Implementierung der Clusterkonstruktion im Docker Redis5.0-Cluster

Systemumgebung: Ubuntu 16.04LTS In diesem Artikel...

Lösen Sie schnell das Problem des langsamen Tomcat-Starts, super einfach

Heute habe ich einem Klassenkameraden geholfen, e...