Zusammenfassung der zugehörigen Funktionen für JSON-Ergebnisse von MySQL-Abfragen

Zusammenfassung der zugehörigen Funktionen für JSON-Ergebnisse von MySQL-Abfragen

Das Feld im JSON-Format ist ein neues Attribut, das in MySQL 5.7 hinzugefügt wurde, aber im Wesentlichen als Zeichenfolge in der Datenbank gespeichert wird. Als ich zum ersten Mal damit in Berührung kam, kannte ich nur die $.xx-Methode zum Abfragen von Feldern, da dies in den meisten Fällen ausreicht und der Rest dem Programm überlassen werden kann. Einige neuere Vorgänge erfordern jedoch komplexere Abfragevorgänge, sodass ich schnell weitere Methoden erlernte.

JSON_EXTRACT(json_doc [,Pfad])

Abfragefelder

mysql> setze @j = '{"name":"wxnacy"}';
mysql> wähle JSON_EXTRACT(@j, '$.name');
+----------------------------+
| JSON_EXTRACT(@j, '$.name') |
+----------------------------+
| "wxnacy" |
+----------------------------+

Es gibt auch einen prägnanteren Weg, der jedoch nur bei Abfragen der Tabelle verwendet werden kann

mysql> wähle ext -> '$.name' aus Test;
+-----------------+
| Erw. -> "$.name" |
+-----------------+
| "wxnacy" |
+-----------------+

Nach $. können Sie das JSON-Format verwenden, um Daten wie Arrays abzurufen.

mysql> setze @j = '{"a": [1, 2]}';
mysql> wähle JSON_EXTRACT(@j, '$.a[0]');
+----------------------------+
| JSON_EXTRACT(@j, '$.a[0]') |
+----------------------------+
| 1 |
+----------------------------+

JSON_DEPTH(json_doc)

Berechnen Sie die Tiefe von JSON. Die Berechnungsmethode ist {} []. Wenn ein Symbol vorhanden ist, handelt es sich um eine Ebene. Wenn sich unter dem Symbol Daten befinden, wird eine zusätzliche Ebene hinzugefügt. Komplexes JSON wird bis zur tiefsten Ebene berechnet. Das offizielle Dokument besagt, dass der Nullwert eine Tiefe von 0 hat, aber der tatsächliche Effekt ist nicht der Fall. Hier sind einige Beispiele

JSON_LENGTH(json_doc [, Pfad])

Berechnet die Länge des äußersten JSON oder des angegebenen Pfads. Die Skalarlänge beträgt 1. Die Länge eines Arrays ist die Anzahl der Array-Elemente und die Länge eines Objekts ist die Anzahl der Objektmitglieder.

mysql> WÄHLEN SIE JSON_LENGTH('[1, 2, {"a": 3}]');
+---------------------------------+
| JSON_LENGTH('[1, 2, {"a": 3}]') |
+---------------------------------+
| 3 |
+---------------------------------+
mysql> JSON_LENGTH AUSWÄHLEN('{"a": 1, "b": {"c": 30}}');
+-----------------------------------------+
| JSON_LENGTH('{"a": 1, "b": {"c": 30}}') |
+-----------------------------------------+
| 2 |
+-----------------------------------------+
mysql> AUSWÄHLEN JSON_LENGTH('{"a": 1, "b": {"c": 30}}', '$.b');
+------------------------------------------------+
| JSON_LENGTH('{"a": 1, "b": {"c": 30}}', '$.b') |
+------------------------------------------------+
| 1 |
+------------------------------------------------+

JSON_TYPE(json_doc)

Gibt eine utf8mb4-Zeichenfolge zurück, die den Typ des JSON-Werts angibt. Dies kann ein Objekt, ein Array oder ein Skalartyp sein, wie unten gezeigt:

mysql> SET @j = '{"a": [10, true]}';
mysql> JSON_TYPE AUSWÄHLEN(@j);
+-----------------+
| JSON_TYPE(@j) |
+-----------------+
| OBJEKT |
+-----------------+
mysql> WÄHLEN SIE JSON_TYPE(JSON_EXTRACT(@j, '$.a'));
+------------------------------------+
| JSON_TYPE(JSON_EXTRACT(@j, '$.a')) |
+------------------------------------+
| ANORDNUNG |
+------------------------------------+
mysql> WÄHLEN SIE JSON_TYPE(JSON_EXTRACT(@j, '$.a[0]'));
+------------------------------------------+
| JSON_TYPE(JSON_EXTRACT(@j, '$.a[0]')) |
+------------------------------------------+
| GANZZAHL |
+------------------------------------------+
mysql> WÄHLEN SIE JSON_TYPE(JSON_EXTRACT(@j, '$.a[1]'));
+------------------------------------------+
| JSON_TYPE(JSON_EXTRACT(@j, '$.a[1]')) |
+------------------------------------------+
| BOOLEANISCH |
+------------------------------------------+

Mögliche Rückgabearten

Reiner JSON-Typ:

  • OBJEKT: JSON-Objekt
  • ARRAY: JSON-Array
  • BOOLEAN: JSON-Wahr- und Falschtext
  • NULL: JSON Nullliteral

Nummerntyp:

  • INTEGER: MySQL TINYINT, SMALLINT, MEDIUMINT und INT- und BIGINT-Skalare
  • DOUBLE: MySQL DOUBLE FLOAT Skalar
  • DECIMAL: MySQL DECIMAL- und NUMERIC-Skalare

Zeittyp:

  • DATETIME: MySQL DATETIME- und TIMESTAMP-Skalare
  • Datum: MySQL DATE Skalar
  • ZEIT: MySQL TIME-Skalar

Zeichenfolgentyp:

STRING: MySQL UTF8-Zeichentyp-Skalare: CHAR, VARCHAR, TEXT, ENUM und SET

Binärtyp:

BLOB: MySQL-Binärtyp-Skalare, einschließlich BINARY, VARBINARY, BLOB und BIT

Alle anderen Typen:

OPAQUE (Rohteil)

JSON_VALID

Gibt 0 oder 1 zurück, um anzugeben, ob der Wert gültiges JSON ist. Wenn das Argument NULL ist, wird NULL zurückgegeben.

mysql> AUSWÄHLEN JSON_VALID('{"a": 1}');
+------------------------+
| JSON_VALID('{"a": 1}') |
+------------------------+
| 1 |
+------------------------+
mysql> SELECT JSON_VALID('hallo'), JSON_VALID('"hallo"');
+---------------------+-------------------------+
| JSON_VALID('hallo') | JSON_VALID('"hallo"') |
+---------------------+-------------------------+
| 0 | 1 |
+---------------------+-------------------------+

Oben finden Sie den detaillierten Inhalt der Zusammenfassung der zugehörigen Funktionen für JSON-Ergebnisse von MySQL-Abfragen. Weitere Informationen zu MySQL-JSON-Funktionen finden Sie in den anderen zugehörigen Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Beispiel einer MySql-Fuzzy-Abfrage-Lösung zum Abrufen von JSON-Schlüsselwörtern
  • Beispielcode zum Konvertieren des Mysql-Abfrageergebnissatzes in JSON-Daten
  • Detaillierte Erklärung zur Abfrage von Feldern im JSON-Format in MySQL
  • Datenabfragevorgang im MySQL-JSON-Format
  • Was ist schneller: MySQL-Volltextindex, gemeinsamer Index, Like-Abfrage und JSON-Abfrage?
  • Zwei Abfragemethoden, wenn der MySQL-Abfragefeldtyp JSON ist
  • Python-Abfrage MySQL, gibt JSON-Instanz zurück
  • So fragen Sie JSON in der Datenbank in MySQL 5.6 und darunter ab
  • Mysql fragt die Daten direkt im gespeicherten JSON-String ab

<<:  Detaillierte Erläuterung der Visualisierungskomponente mit Vue zum Vergleichen der Unterschiede zwischen zwei Datensätzen

>>:  Lösen Sie das Problem mehrerer Listener, die beim Starten von Tomcat in Idea gemeldet werden

Artikel empfehlen

Einige Tipps zur richtigen Verwendung des HTML-Titelattributs

Wenn Sie Inhalte vor Benutzern von Telefonen, Tabl...

Drei Methoden zum Ändern des Hostnamens von Centos7

Methode 1: Hostnamectl-Änderung Schritt 1 Überprü...

MySQL 8.0 DDL-Atomaritätsfunktion und Implementierungsprinzip

1. Übersicht über die Atomizität von DDL Vor 8.0 ...

JS-Code zum Erzielen eines Seitenwechseleffekts

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erläuterung des Fehlerproblems der Case-When-Anweisung

Vorwort In der MySQL-Datenbank verwenden wir manc...

Tiefes Verständnis von Zeilenhöhe und vertikaler Ausrichtung

Mehrere Konzepte Zeilenbox: Eine Box, die eine In...

Beispiel für den Aufbau eines Jenkins-Dienstes mit Docker

Ziehen Sie das Bild root@EricZhou-MateBookProX: D...

Erklärung des HTML-Codes der Webseite: geordnete Liste und ungeordnete Liste

In diesem Abschnitt lernen wir Listenelemente in ...

Detaillierte Erläuterung der Verwendung des MySQL-Auswahl-Cache-Mechanismus

Der MySQL-Abfragecache ist standardmäßig aktivier...

So erstellen Sie eine Liste in CocosCreator

CocosCreator-Version: 2.3.4 Cocos hat keine Liste...

So verbinden Sie JDBC mit MySQL 5.7

1. Bereiten Sie zunächst die MySQL- und Eclipse-U...

Native JS-Implementierung der Slider-Intervallkomponente

In diesem Artikelbeispiel wird der spezifische Co...

Einführung in JavaScript-Zahlen- und Mathematikobjekte

Inhaltsverzeichnis 1. Zahlen in JavaScript 2. Mat...