MySQL 5.7.8 führte das JSON-Feld ein. Dieser Feldtyp wird weniger häufig verwendet, aber im tatsächlichen Betrieb wird er von einigen Unternehmen immer noch verwendet. Nehmen wir dies als Beispiel, um die Bedienung des JSON-Felds vorzustellen: Beginnen wir mit einem Beispiel: mysql> Tabelle erstellen test1(id int,info json); Abfrage OK, 0 Zeilen betroffen (0,02 Sek.) mysql> in Test1-Werte einfügen (1, ‚{"name":"yeyz","age":26}‘), (2, ‚{"name":"zhangsan","age":30}‘), (3, ‚{"name":"lisi","age":35}‘); Abfrage OK, 3 Zeilen betroffen (0,02 Sek.) Datensätze: 3 Duplikate: 0 Warnungen: 0 mysql> wähle * aus test1; +------+---------------------------------+ | Ich würde | Info | +------+---------------------------------+ | 1 | {"Alter": 26, "Name": "yeyz"} | | 2 | {"Alter": 30, "Name": "zhangsan"} | | 3 | {"Alter": 35, "Name": "lisi"} | +------+---------------------------------+ 3 Zeilen im Satz (0,00 Sek.) Zuerst haben wir eine Tabelle test1 erstellt, wobei id ein int-Feld und info ein json-Feld ist, und drei Datenstücke eingefügt, wie oben gezeigt: mysql> wähle * aus Test1, wobei json_extract(info,"$.age")>=30; +------+---------------------------------+ | Ich würde | Info | +------+---------------------------------+ | 2 | {"Alter": 30, "Name": "zhangsan"} | | 3 | {"Alter": 35, "Name": "lisi"} | +------+---------------------------------+ 2 Zeilen im Satz (0,00 Sek.) Wir können den Inhalt im JSON-Format über die Methode json_extract abrufen. In: 1. Das $-Symbol steht für das Stammverzeichnis von JSON. 2. Wir verwenden $.age, was dem Herausnehmen des Altersfelds in JSON entspricht. 3. Natürlich sollte am Anfang der Funktion der Feldname info geschrieben werden Schauen wir uns die häufig verwendeten Funktionen in JSON an: a. json_valid bestimmt, ob es sich um ein JSON-Feld handelt. Wenn ja, gibt es 1 zurück, wenn nicht, gibt es 0 zurück mysql> wähle json_valid(2); +-----------------+ | json_gültig(2) | +-----------------+ | 0 | +-----------------+ 1 Zeile im Satz (0,01 Sek.) mysql> wähle json_valid('{"num":2}'); +-------------------------+ | json_valid('{"num":2}') | +-------------------------+ | 1 | +-------------------------+ 1 Zeile im Satz (0,00 Sek.) mysql> wähle json_valid('2'); +-----------------+ | json_valid('2') | +-----------------+ | 1 | +-----------------+ 1 Zeile im Satz (0,00 Sek.) mysql> wähle json_valid('Name'); +--------------------+ | json_valid('Name') | +--------------------+ | 0 | +--------------------+ 1 Zeile im Satz (0,00 Sek.) Hierbei ist zu beachten, dass bei Übergabe der Zeichenfolge 2 das Rückgabeergebnis 1 ist. b. json_keys gibt den Schlüsselwert der obersten Ebene des JSON-Felds zurück. mysql> wähle json_keys('{"name":"yeyz","score":100}'); +------------------------------------------+ | json_keys('{"name":"yeyz","score":100}') | +------------------------------------------+ | ["Name", "Punktzahl"] | +------------------------------------------+ 1 Zeile im Satz (0,01 Sek.) mysql> wähle json_keys('{"name":"yeyz","score":{"math":100,"English":95}}'); +----------------------------------------------------------------+ | json_keys('{"name":"yeyz","score":{"math":100,"English":95}}') | +----------------------------------------------------------------+ | ["Name", "Punktzahl"] | +----------------------------------------------------------------+ 1 Zeile im Satz (0,00 Sek.) #Wenn mehrere Ebenen vorhanden sind, können Sie die $-Methode am Ende verwenden, um das Verzeichnis einer der Ebenen abzurufenmysql> select json_keys('{"name":"yeyz","score":{"math":100,"English":95}}','$.score'); +--------------------------------------------------------------------------+ | json_keys('{"name":"yeyz","score":{"math":100,"English":95}}','$.score') | +--------------------------------------------------------------------------+ | ["Mathematik", "Englisch"] | +--------------------------------------------------------------------------+ 1 Zeile im Satz (0,00 Sek.) c. Die Funktion json_length gibt die Anzahl der Schlüssel in der obersten Ebene zurück. Wenn Sie eine bestimmte Ebene in der Mitte haben möchten, können Sie die $-Methode wie folgt verwenden: mysql> wähle json_length('{"name":"yeyz","score":{"math":100,"English":95},"age":26}'); +---------------------------------------------------------------------------+ | json_length('{"name":"yeyz","score":{"math":100,"English":95},"age":26}') | +---------------------------------------------------------------------------+ | 3 | +---------------------------------------------------------------------------+ 1 Zeile im Satz (0,00 Sek.) mysql> wähle json_length('{"name":"yeyz","score":{"math":100,"English":95},"age":26}','$.score'); +--------------------------------------------------------------------------------------------------+ | json_length('{"name":"yeyz","score":{"math":100,"English":95},"age":26}','$.score') | +--------------------------------------------------------------------------------------------------+ | 2 | +--------------------------------------------------------------------------------------------------+ 1 Zeile im Satz (0,00 Sek.) d. json_depth-Funktion, die Tiefe der JSON-Datei, das Testbeispiel ist wie folgt: mysql> wähle json_depth('{"aaa":1}'),json_depth('{}'); +-------------------------+------------------+ | json_depth('{"aaa":1}') | json_depth('{}') | +-------------------------+------------------+ | 2 | 1 | +-------------------------+------------------+ 1 Zeile im Satz (0,00 Sek.) mysql> wähle json_depth('{"name":"yeyz","score":{"math":100,"English":95},"age":26}'); +--------------------------------------------------------------------------+ | json_depth('{"name":"yeyz","score":{"math":100,"English":95},"age":26}') | +--------------------------------------------------------------------------+ | 3 | +--------------------------------------------------------------------------+ 1 Zeile im Satz (0,00 Sek.) Hierbei ist zu beachten, dass die Tiefe von JSON in der Form {'aa':1} 2 beträgt. e. Die Funktion json_contains_path ruft ab, ob in JSON ein oder mehrere Mitglieder vorhanden sind. mysql> setze @j='{"a":1,"b":2,"c":{"d":4}}'; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) #one bedeutet, dass, solange es ein Mitglied enthält, 1 zurückgegeben wird. mysql> wähle json_contains_path(@j,'one','$.a','$.e'); +------------------------------------------+ | json_contains_path(@j,'eins','$.a','$.e') | +------------------------------------------+ | 1 | +------------------------------------------+ 1 Zeile im Satz (0,00 Sek.) #all bedeutet, dass alle Mitglieder eingeschlossen sind, und nur dann wird 1 zurückgegeben mysql> wähle json_contains_path(@j,'alle','$.a','$.e'); +------------------------------------------+ | json_contains_path(@j,'alle','$.a','$.e') | +------------------------------------------+ | 0 | +------------------------------------------+ 1 Zeile im Satz (0,01 Sek.) mysql> wähle json_contains_path(@j,'one','$.c.d'); +--------------------------------------+ | json_contains_path(@j,'eins','$.c.d') | +--------------------------------------+ | 1 | +--------------------------------------+ 1 Zeile im Satz (0,00 Sek.) mysql> wähle json_contains_path(@j,'one','$.a.d'); +--------------------------------------+ | json_contains_path(@j,'eins','$.a.d') | +--------------------------------------+ | 0 | +--------------------------------------+ 1 Zeile im Satz (0,00 Sek.) f. Die Funktion json_type bestimmt den Typ der Mitglieder in JSON und muss in Verbindung mit json_extract verwendet werden. mysql> wähle * aus test1; +------+---------------------------------+ | Ich würde | Info | +------+---------------------------------+ | 1 | {"Alter": 26, "Name": "yeyz"} | | 2 | {"Alter": 30, "Name": "zhangsan"} | | 3 | {"Alter": 35, "Name": "lisi"} | +------+---------------------------------+ 3 Zeilen im Satz (0,00 Sek.) #Beurteilen Sie den Typ von namemysql> select json_type(json_extract(info,"$.name")) from test1; +----------------------------------------+ | json_type(json_extract(info,"$.name")) | +----------------------------------------+ | ZEICHENKETTE | | ZEICHENKETTE | | ZEICHENKETTE | +----------------------------------------+ 3 Zeilen im Satz (0,00 Sek.) #Bestimmen Sie den Typ von agemysql> select json_type(json_extract(info,"$.age")) from test1; +------------------------------------------+ | json_type(json_extract(info,"$.age")) | +------------------------------------------+ | GANZZAHL | | GANZZAHL | | GANZZAHL | +------------------------------------------+ 3 Zeilen im Satz (0,00 Sek.) #Beurteilen Sie den Typ der Kombination aus Name und Alter. Sie können sehen, dass es sich um ein Array handelt mysql> wähle json_type(json_extract(info,"$.name","$.age")) aus test1; +------------------------------------------------+ | json_type(json_extract(info,"$.name","$.age")) | +------------------------------------------------+ | ANORDNUNG | | ANORDNUNG | | ANORDNUNG | +------------------------------------------------+ 3 Zeilen im Satz (0,00 Sek.) g. Die Rolle von *, alle Werte, siehe die Beispiele unten. { "ein":1, "b":2, "C": { "d":4 } "e": { "D": { "ddd": "5" } } } mysql> setze @j='{"a":1,"b":2,"c":{"d":4},"e":{"d":{"ddd":"5"}}}'; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) #Alle Mitgliedermysql> select json_extract(@j,'$.*'); +------------------------------------------+ | json_extract(@j,'$.*') | +------------------------------------------+ | [1, 2, {"d": 4}, {"d": {"ddd": "5"}}] | +------------------------------------------+ 1 Zeile im Satz (0,00 Sek.) #d Mitglied unter allen Mitgliedernmysql> select json_extract(@j,'$.*.d'); +--------------------------+ | json_extract(@j,'$.*.d') | +--------------------------+ | [4, {"ddd": "5"}] | +--------------------------+ 1 Zeile im Satz (0,00 Sek.) Oben finden Sie den detaillierten Inhalt der Betriebsmethode des JSON-Felds in MySQL. Weitere Informationen zum MySQL-JSON-Feld finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Vue3 kapselt seine eigene Paging-Komponente
>>: Detailliertes Tutorial zur Springcloud-Alibaba-Nacos-Linux-Konfiguration
In diesem Artikel wird die Installations- und Kon...
In diesem Artikelbeispiel wird der spezifische Co...
1. Entpacken Sie nginx-1.8.1.tar.gz 2. Entpacken ...
Einfache Implementierung von Mysql-Anweisungen zu...
Inhaltsverzeichnis Array-Destrukturierungszuweisu...
Inhaltsverzeichnis Konfigurieren Sie zuerst packa...
Inhaltsverzeichnis Zum Beispiel: Allgemeines Schr...
Inhaltsverzeichnis 1. Szenario 2. Implementieren ...
Inhaltsverzeichnis 1. Workflow ausführen 2. Grund...
Ich bin schon vor langer Zeit mit CSS in Berührun...
Die Kapselung und Verwendung der Vue-Komponente z...
In diesem Artikel wird der spezifische Code von J...
Überblick Es gibt viele Open-Source-Tools zur Net...
[LeetCode] 197.Steigende Temperatur Schreiben Sie...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...