Heim >Datenbank >MySQL-Tutorial >Detaillierte Erläuterung der Betriebsfunktionen der JSON-Serie in Mysql_MySQL

Detaillierte Erläuterung der Betriebsfunktionen der JSON-Serie in Mysql_MySQL

WBOY
WBOYOriginal
2016-09-09 08:13:401322Durchsuche

Vorwort

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.

Tabelle mit JSON-Feldern erstellen

Eine „Artikel“-Tabelle enthält beispielsweise Felder, die

enthalten

ID, Titeltitel, Tags

Ein Artikel verfügt über mehrere Tags und 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;

Daten einfügen

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"]'

);

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

Fragen Sie alle Inhalte in der Artikeltabelle ab und Sie können die neu eingefügten Daten sehen

Abfrage

Verwenden Sie JSON-Funktionen, um zwei einfache Abfragen durchzuführen

1. Finden Sie alle Artikel mit dem Tag „Mysql“

SELECT * FROM `article`

WHERE JSON_CONTAINS(tags, '["Mysql"]');

2. Finden Sie Artikel, die mit „Daten“ im Tag beginnen

SELECT * FROM `article`

WHERE JSON_SEARCH(tags, 'one', 'Data%') IS NOT NULL;

Die Bedeutung der drei Parameter in der JSON_SEARCH-Funktion:

1. Zu findende Dokumente

2. Suchbereich, es gibt zwei Optionen: „Eins“ findet den ersten, der die Bedingungen erfüllt, „Alle“ findet alle, die die Bedingungen erfüllen

3. Suchbedingungen

JSON-Pfad

Der JSON-Pfad wird verwendet, um das Zielfeld im Dokument zu finden, z. B.

SELECT JSON_EXTRACT(

'{"id": 1, "name": "mysql"}',

'$.name'

);

Das Ergebnis ist: MySQL

JSON_EXTRACT() ist eine JSON-Extraktionsfunktion, $.name ist ein JSON path, das das Namensfeld

des positionierten Dokuments darstellt

JSON path 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

Abfragebeispiel mit JSON path

SELECT

tags->"$[0]" as 'tag'

FROM `article`;

Daten aktualisieren

Wenn Sie beispielsweise einem Artikel ein „dev“-Tag hinzufügen möchten, lautet die Aktualisierungsbedingung, dass er bereits das „Mysql“-Tag enthält und keine Daten für das „dev“-Tag vorhanden sind

Die Aktualisierungserklärung lautet 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;

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

Als weiteres Beispiel: Wenn Sie die Bezeichnung „Mysql“ auf „Mysql 5.7.13“ aktualisieren möchten, lautet die Aktualisierungsanweisung wie folgt:

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

Ich habe oben JSON_MERGE und JSON_SET erlebt. Es gibt viele weitere Funktionen zum Ändern von JSON, wie 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]…)

Daten vom angegebenen Speicherort entfernen

Aufgrund der ersten Betriebserfahrung habe ich das Gefühl, dass der JSON-Betrieb von MySQL relativ reibungslos verläuft. Es ist in der Tat sehr praktisch, die Dokumentstruktur in MySQL in Zukunft zu verwenden.

Die neue Version von MySQL bietet auch eine Javascript-Konsole, die der MongoDB-Shell ähnelt und auch sehr praktisch ist, was später zusammengefasst wird. Ich hoffe, dass dieser Artikel allen beim Erlernen von MySQL hilfreich sein wird. Vielen Dank für Ihre Unterstützung.

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