Heim > Datenbank > MySQL-Tutorial > So verwenden Sie die Funktion json_extract in MySQL

So verwenden Sie die Funktion json_extract in MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2023-06-02 20:16:09
nach vorne
2019 Leute haben es durchsucht

    1. Beschreibung des json_extract-Nutzungsszenarios

    In der täglichen Geschäftsentwicklung muss in der Regel ein Feld in der MySQL-Datenbank gespeichert werden. Bei der Abfrage sind die JSON-Daten manchmal groß und werden jedes Mal herausgenommen , die Abfrage wird weniger effizient und problematischer

    Glücklicherweise bieten Mysql5.7 und spätere Versionen die Funktion json_extract, die den Wert über den Schlüssel abfragen kann (wenn es sich um einen JSON-Array-Typ handelt, können Sie den Wert abrufen der entsprechenden Position durch den Index), was sehr praktisch ist.

    2. Einführung in die MySQL-json_extract-Funktion

    2.1 Einführung in die Funktion a Ein internes Binärformat, das ein schnelles Lesen von Dokumentelementen ermöglicht. Json-Text wird automatisch überprüft, wenn eine Json-Spalte eingefügt oder aktualisiert wird. Bei Text, der die Überprüfung nicht besteht, wird eine Fehlermeldung generiert. JSON-Text wird standardmäßig erstellt und die meisten Vergleichsoperatoren können für Vergleichsoperationen verwendet werden, z. B. =, <, <=, >, >=, <>, != und <= >.

    2.2 Verwendung

    Die gespeicherten Daten sind JSON-Strings (Typ ist Vachar).

    Wenn Sie den Wert eines bestimmten Felds in JSON abfragen möchten, verwenden Sie die folgende Methode: JSON_EXTRACT().

    Syntax:

    **JSON_EXTRACT(json_doc, path[, path] …)**

    Verwendungstipps:

      Wenn die JSON-Zeichenfolge kein Array ist, verwenden Sie $.Feldname direkt
    •  $.字段名

    • 如果json字符串是数组[Array],则直接使用 $[对应的索引ID]

    2.3 注意事项

    JSON_EXTRACT性能验证 , 通过查看执行计划,验证全部都是全表扫描。
    使用场景:数据量不大json字符串较大则可以采用,数据量较大不建议使用。

    3. 数据验证

    3.1 提取普通json中的值

    说明:

    • 普通字段使用 $.KEY 获取

    • 数组字段使用 $.KEY[index]

      Wenn die JSON-Zeichenfolge ein Array [Array] ist, verwenden Sie direkt $[entsprechende Index-ID]
    • 2.3 Hinweise
    JSON_EXTRACT-Leistungsüberprüfung durch Anzeigen der Ausführung Plan und Überprüfung sind alle vollständige Tabellenscans.
    Verwendungsszenarien: Wenn die Datenmenge klein ist, kann sie verwendet werden, wenn die JSON-Zeichenfolge groß ist. Wenn die Datenmenge jedoch groß ist, wird dies nicht empfohlen.

    3. Datenüberprüfung SCHLÜSSEL für Array-Felder [index] Erhalten Sie, beachten Sie, dass der Index bei 0 beginnt Das Nullen und Ersetzen von JSON ist erforderlich. Vorgang

    "zhangsan"136- 6666-6666 NameTags 1 zhangsan["COMMON"]2lisi["VIP"]3

    wangwu

    ["VVIP","PLATINUM" ]

    4zhaoliu Erstes Tag des Benutzers extrahieren:
    select 
    	json_extract(&#39;{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}&#39;,"$.name") as name,
    	json_extract(&#39;{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}&#39;,"$.tel_no") as tel_no,
    	json_extract(&#39;{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}&#39;,"$.hobbies[0]") as hobby_1,
    	json_extract(&#39;{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}&#39;,"$.hobbies[1]") as hobby_2,
    	json_extract(&#39;{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}&#39;,"$.hobbies[2]") as hobby_3,
    	json_extract(&#39;{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}&#39;,"$.hobbies[3]") as hobby_4;
    Nach dem Login kopieren
    idNametags1 zhangsan „GEMEINSAM“1
    Ergebnis:

    Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Funktion json_extract in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Verwandte Etiketten:
    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
    Aktuelle Ausgaben
    So ändern Sie MySQL in MySQL
    Aus 1970-01-01 08:00:00
    0
    0
    0
    MySQL-Startfehler unter Centos
    Aus 1970-01-01 08:00:00
    0
    0
    0
    MySQL stoppt den Prozess
    Aus 1970-01-01 08:00:00
    0
    0
    0
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage