Heim >Datenbank >MySQL-Tutorial >Detaillierte Erläuterung von Beispielen für JSON-Funktionsoperationen in Mysql5.7
In diesem Artikel erfahren Sie, wie Sie die Funktion zum Betreiben von JSON in MySQL5.7 verwenden. Dies ist sehr praktisch. Freunde in Not können sich darauf beziehen
JSON ist ein leichtes Datenaustauschformat, das ein sprachunabhängiges Textformat verwendet, ähnlich wie XML, aber einfacher, leichter zu lesen und leichter zu schreiben als XML. Es ist für Maschinen einfach zu analysieren und zu generieren und verringert die Übertragungsbandbreite im Netzwerk.
Das Format von JSON ist sehr einfach: Name/Schlüsselwert. In früheren Versionen von MySQL wurde zur Implementierung einer solchen Speicherung entweder VARCHAR- oder TEXT-Großtext verwendet. Nach der Veröffentlichung von MySQL 5.7 wurden der JSON-Datentyp sowie der Abruf und das Parsen anderer Funktionen dieses Typs speziell entwickelt.
Machen wir es in der Praxis.
Erstellen Sie eine Tabelle mit JSON-Feldern
Zum Beispiel eine „Artikel“-Tabelle, die Felder umfassen
ID, Titeltitel, Tags
einen Artikel Es wird mehrere Tags geben, Tags können auf den JSON-Typ eingestellt werden
Die Anweisung zur Tabellenerstellung lautet wie folgt:
CREATE TABLE article` ( id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, title` varchar (200) NOT NULL , tags` json DEFAULT NULL , PRIMARY KEY (`id`) ) ENGINE=InnoDB;
Fügen Sie ein Datenelement mit JSON-Inhalt ein und führen Sie die Einfügeanweisung aus:
INSERT INTO article` (`title`, `tags`) VALUES ( '体验 Mysql JSON' , '["Mysql", "Database"]' );
Fragen Sie alle Inhalte in der Artikeltabelle ab, Sie können die neu eingefügten Daten sehen
Abfrage
Verwenden Sie die JSON-Funktion, um zwei einfache Abfragen durchzuführen
1. Finden Sie alle Artikel mit dem Tag „Mysql“
SELECT * FROM article` WHERE JSON_CONTAINS(tags, '["Mysql"]' );
SELECT * FROM article` WHERE JSON_SEARCH(tags, 'one' , 'Data%' ) IS NOT NULL ;
1 Das zu findende Dokument
2 zwei Optionen, „eine“ Suche Die erste, die die Bedingungen erfüllt, „alle“ findet alle, die die Bedingungen erfüllen
3. Suchbedingungen
JSON-Pfad
JSON Der Pfad wird verwendet, um das Zielfeld im Dokument zu finden, zum Beispiel
SELECT JSON_EXTRACT( '{"id": 1, "name": "mysql"}' , '$.name' );
JSON_EXTRACT() ist die JSON-Extraktion Funktion, $.name ist ein JSON-Pfad, der den Speicherort des Dokuments angibt. Das Namensfeld
JSON-Pfad beginnt mit $, hier sind einige weitere Beispiele
{ "num" : 123, "arr" : [1, 2], "obj" : { "a" : 3, "b" : 4 } } $.num //结果:123 $.arr //结果:[1, 2] $.arr[1] //结果:1 $.obj.a //结果:3 $**.b //结果:4
SELECT tags-> "$[0]" as 'tag' FROM article`;
Zum Beispiel, wenn Sie einem „dev“-Tag hinzufügen möchten Artikel, die Update-Bedingung ist, dass das Tag „Mysql“ bereits enthalten ist und es kein „dev“ gibt. „Die Daten der Tag-Update-Anweisung
lauten wie folgt:
UPDATE article` SET tags = JSON_MERGE(tags, '["dev"]' ) WHERE JSON_SEARCH(tags, 'one' , 'dev' ) IS NULL AND JSON_SEARCH(tags, 'one' , 'Mysql' ) IS NOT NULL ;
erfolgreich hinzugefügt wurde. Ein weiteres Beispiel: Wenn Sie das Tag „Mysql“ auf „Mysql 5.7.13“ aktualisieren möchten Die Anweisung lautet wie folgt:
UPDATE Article` set tags = JSON_SET(tags, '$[0] ', 'Mysql 5.7.13' ) ;
UPDATE article` set tags = JSON_SET(tags, ‘$[0] ', ‘Mysql 5.7.13' ) ;<br>
Ich habe oben JSON_MERGE und JSON_SET erlebt und es gibt viele Funktionen zum Ändern von JSON, zum Beispiel:
JSON_INSERT(doc, path, val[, path, val]…)
Daten einfügen
JSON_REPLACE(doc, path, val[, path, val]…)
Daten ersetzen
JSON_ARRAY_APPEND(doc, path, val[, path, val]…)
Daten an das Ende des Arrays anhängen
JSON_REMOVE(doc , path[, path]…)
JSON_REMOVE(doc, path[, path]…)<br>
Daten vom angegebenen Speicherort entfernen
Durch die anfängliche Betriebserfahrung habe ich das Gefühl, dass der JSON-Betrieb von MySQL relativ reibungslos verläuft ist wirklich praktisch, die Dokumentstruktur in Zukunft in MySQL zu verwenden
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Beispielen für JSON-Funktionsoperationen in Mysql5.7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!