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
Wir müssen zunächst die Luftqualitätsdaten mit de...
Hintergrund Wenn wir über Transaktionen sprechen,...
Reguläre Ausdrücke werden häufig verwendet, um Te...
Möglicherweise ist Ihnen aufgefallen, dass auf die...
1. Die Verwendung von Docker Compose ist der Verw...
MySQL Einführung in MySQL MySQL war ursprünglich ...
Inhaltsverzeichnis Überblick 1. useState 1.1 Drei...
Vorne geschrieben Wenn wir in unserem täglichen L...
Inhaltsverzeichnis 1. Einleitung 2. Analyse des f...
Aufgrund von Geschäftsanpassungen im Unternehmen ...
Inhaltsverzeichnis 1. Zeichne einen Kreis 2. Krei...
Ich habe heute MySQL 8.0 aktualisiert. Das erste ...
1. MySQL über RPM-Paket installiert Dienst MySQL ...
Es gibt zwei Möglichkeiten, Daten in MySQL zu lös...
Zusammenfassung: Viele Unternehmen, sogar die meis...