Heim  >  Artikel  >  Datenbank  >  Detaillierte Erläuterung von Beispielen für JSON-Funktionsoperationen in Mysql5.7

Detaillierte Erläuterung von Beispielen für JSON-Funktionsoperationen in Mysql5.7

黄舟
黄舟Original
2017-07-27 15:33:281453Durchsuche

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:


Daten einfügen
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:


Was hier eingefügt wird, ist ein JOSN-Array ["Mysql", "Database "]
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“


2. Finden Sie Artikel, die mit „Data“ im Tag beginnen
SELECT * FROM article`
WHERE JSON_CONTAINS(tags, '["Mysql"]' );


Die Bedeutung der drei Parameter in der JSON_SEARCH-Funktion:
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


Das Ergebnis ist: mysql
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


Abfragebeispiele mit JSON-Pfad
{
"num" : 123,
"arr" : [1, 2],
"obj" : {
"a" : 3,
"b" : 4
}
}
$.num //结果:123
$.arr //结果:[1, 2]
$.arr[1] //结果:1
$.obj.a //结果:3
$**.b //结果:4


Daten aktualisieren
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:


Sie können sehen, dass das Tag „dev“
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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn