Im vorherigen Artikel haben wir das ausführliche Beispiel für MySQL-Datenspeicherprozedurparameter vorgestellt. Heute werfen wir einen Blick auf den relevanten Inhalt von MySQL-Operationen für den JSON-Datentyp. Überblick Seit Version 5.7.8 unterstützt MySQL die Speicherung und Abfrage von JSON-strukturierten Daten, was zeigt, dass MySQL auch ständig dazulernt und die Vorteile von NoSQL-Datenbanken hinzufügt. Aber MySQL ist letztlich eine relationale Datenbank und bei der Verarbeitung unstrukturierter Daten wie JSON immer noch umständlich. Erstellen einer Tabelle mit einem JSON-Feld Erstellen Sie zunächst eine Tabelle, die ein Feld im JSON-Format enthält: CREATE TABLE Tabellenname ( id INT NICHT NULL AUTO_INCREMENT, json_col JSON, PRIMÄRSCHLÜSSEL(id) ); Achten Sie in der obigen Anweisung auf das Feld json_col, das den Datentyp als JSON angibt. Einfügen einfacher JSON-Daten EINFÜGEN IN Tabellenname (json_col) WERTE ('{"Stadt": "Galle", "Beschreibung": "Die verdammt beste Stadt der Welt"}'); Achten Sie in der obigen SQL-Anweisung auf den Teil nach VALUES. Da doppelte Anführungszeichen erforderlich sind, um Zeichenfolgen in Daten im JSON-Format zu identifizieren, muss der Inhalt nach VALUES in einfache Anführungszeichen gesetzt werden. Einfügen komplexer JSON-Daten INSERT INTO Tabelle (Spalte) VALUES('{"opening":"Sicilian","variations":["pelikan","dragon","najdorf"]}'); Hier haben wir ein JSON-Array eingefügt. Achten Sie vor allem auf das Problem der einfachen und doppelten Anführungszeichen. Ändern von JSON-Daten Im vorherigen Beispiel haben wir mehrere JSON-Daten eingefügt. Aber wie können wir einen bestimmten Inhalt in den JSON-Daten ändern? Wenn wir beispielsweise ein Element zum Variationen-Array hinzufügen, können wir Folgendes tun: UPDATE myjson SET dict=JSON_ARRAY_APPEND(dict,'$.variations','scheveningen') WHERE id = 2; In dieser SQL-Anweisung stellt $ das JSON-Feld dar, der Punkt wird zum Indizieren des Variationenfelds verwendet und dann wird mit der Funktion JSON_ARRAY_APPEND ein Element hinzugefügt. Nun führen wir die Abfrage aus: Wählen Sie * aus myjson Das Ergebnis ist: +----+--------------------------------------------------------------------------+ | Ich würde | Wörterbuch | +---+-----------------------------------------------------------------------------------------+ | 2 | {"Eröffnung": "Sizilianisch", "Variationen": ["Pelikan", "Drache", "Najdorf", "Scheveningen"]} | +----+--------------------------------------------------------------------------+ 1 Zeile im Satz (0,00 Sek.) Weitere Informationen zum Abrufen von JSON-Daten in MySQL finden Sie unter dem offiziellen Link JSON Path Syntax Index erstellen Die Daten im JSON-Format von MySQL können nicht direkt indiziert werden. Sie können dies jedoch umgehen, indem Sie die zu durchsuchenden Daten in eine separate Datenspalte aufteilen und dann einen Index für dieses Feld erstellen. Hier ist das offizielle Beispiel: mysql> TABELLE ERSTELLEN jemp ( -> c JSON, -> g INT wird immer als (c->"$.id") generiert, -> INDEX i (g) -> ); Abfrage OK, 0 Zeilen betroffen (0,28 Sek.) mysql> INSERT INTO jemp (c) WERTE > ('{"id": "1", "name": "Fred"}'), ('{"id": "2", "name": "Wilma"}'), > ('{"id": "3", "name": "Barney"}'), ('{"id": "4", "name": "Betty"}'); Abfrage OK, 4 Zeilen betroffen (0,04 Sek.) Datensätze: 4 Duplikate: 0 Warnungen: 0 mysql> SELECT c->>"$.name" AS name > VON jemp, WO g > 2; +--------+ | Name | +--------+ | Barney | | Betty | +--------+ 2 Zeilen im Satz (0,00 Sek.) mysql> ERKLÄREN SELECT c->>"$.name" AS name > VON jemp WO g > 2\G *************************** 1. Reihe *************************** ID: 1 select_type: EINFACH Tabelle: jemp Partitionen: NULL Typ: Bereich mögliche Schlüssel: i Taste: i Schlüssellänge: 5 Ref: NULL Reihen: 2 gefiltert: 100,00 Extra: Verwenden von „where“ 1 Zeile im Satz, 1 Warnung (0,00 Sek.) mysql> WARNUNGEN ANZEIGEN\G *************************** 1. Reihe *************************** Level: Hinweis Code: 1003 Nachricht: /* select#1 */ select json_unquote(json_extract(`test`.`jemp`.`c`,'$.name')) AS `Name` von `test`.`jemp`, wobei (`test`.`jemp`.`g` > 2) 1 Zeile im Satz (0,00 Sek.) Dieses Beispiel ist sehr einfach. Es nimmt das ID-Feld im JSON-Feld und trennt es in Feld g. Dann wird ein Index für Feld g erstellt und die Abfragebedingung gilt auch für Feld g. Konvertieren Sie die Zeichenfolge in das JSON-Format Konvertieren Sie eine Zeichenfolge im JSON-Format in den JSON-Typ von MySQL: SELECT CAST('[1,2,3]' als JSON) ; SELECT CAST('{"opening":"Sicilian","variations":["pelikan","dragon","najdorf"]}' als JSON); Alle MySQL JSON-Funktionen
Zusammenfassen Dies ist der gesamte Inhalt dieses Artikels zur detaillierten Erläuterung von JSON-Datentypoperationen in MySQL. Ich hoffe, er wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf diese Site verweisen: Detaillierte Beispiele für MySQL-Datenspeicherprozessparameter, kurze Beschreibung des Unterschieds zwischen Redis und MySQL, mehrere wichtige MySQL-Variablen usw. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht und weisen Sie darauf hin. Der Herausgeber wird Ihnen rechtzeitig antworten und Änderungen vornehmen und sich bemühen, den meisten Programmierbegeisterten und -arbeitern bessere Artikel und ein besseres Leseerlebnis zu bieten. Hier sind einige Bücher zum MySQL-Betrieb zu Ihrer Information: MySQL-Datenbankanwendung vom Anfänger bis zum Meister (2. Ausgabe) PDF-gescannte Version https://www.jb51.net/books/361239.html MySQL5 Definitive Guide (3. Ausgabe) Chinesische Version PDF-gescannte Version https://www.jb51.net/books/367031.html Ich hoffe, es gefällt Ihnen. Weitere spannende Inhalte finden Sie unter: https://www.jb51.net/ Das könnte Sie auch interessieren:
|
<<: Einrichten freigegebener Ordner in der virtuellen Ubuntu-Maschine von VMWare14.0.0
>>: Einrichten der React-Native-Umgebung und grundlegende Einführung
Frage Die Angabe des Typs der hochgeladenen Datei...
Inhaltsverzeichnis 1. Veranstaltungsdelegation Er...
Vue3-Projektkapselung Seitennavigation Textskelet...
1. E-Commerce-Symbole 2. Symbol Süßigkeiten 2 3. ...
Bei der Konfiguration von nginx.conf treten immer...
Vorwort Als MySQL den Standarddatenbankpfad änder...
MySql verwendet verknüpfte Tabellenabfragen, die ...
Zunächst müssen wir wissen, was ein Zustandsmanag...
Inhaltsverzeichnis Animationsvorschau Andere UI-B...
Lassen Sie uns Nginx installieren und ausprobiere...
Inhaltsverzeichnis Was ist Vuex? Vuex-Nutzungszyk...
Inhaltsverzeichnis 1. Was ist eine Fensterfunktio...
Vorwort Ich habe vor Kurzem Linux gelernt und dan...
Früher bestand das Unterstreichen in HTML darin, ...
Wir verwenden animierte CSS3-Übergänge, um einen ...