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
Freigeben: 2016-09-09 08:13:40
Original
1333 Leute haben es durchsucht

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;
Nach dem Login kopieren

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

);
Nach dem Login kopieren

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"]');
Nach dem Login kopieren

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

SELECT * FROM `article`

WHERE JSON_SEARCH(tags, 'one', 'Data%') IS NOT NULL;
Nach dem Login kopieren

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'

);
Nach dem Login kopieren

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
Nach dem Login kopieren

Abfragebeispiel mit JSON path

SELECT

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

FROM `article`;
Nach dem Login kopieren

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;
Nach dem Login kopieren

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') ;
Nach dem Login kopieren

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]…)
Nach dem Login kopieren

Daten einfügen

JSON_REPLACE(doc, path, val[, path, val]…)
Nach dem Login kopieren

Daten ersetzen

JSON_ARRAY_APPEND(doc, path, val[, path, val]…)
Nach dem Login kopieren

Daten an das Ende des Arrays anhängen

JSON_REMOVE(doc, path[, path]…)
Nach dem Login kopieren

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.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage