Heim  >  Artikel  >  Datenbank  >  So verwenden Sie die Funktion json_extract in MySQL

So verwenden Sie die Funktion json_extract in MySQL

WBOY
WBOYnach vorne
2023-06-02 20:16:091907Durchsuche

    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. =, 91eef5681cad6f0cc96f9adeb2931b45, >=, a8093152e673feb7aba1828c43532094, != und b207bb093495751f3e536c5eb7122819.

    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('{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}',"$.name") as name,
    	json_extract('{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}',"$.tel_no") as tel_no,
    	json_extract('{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}',"$.hobbies[0]") as hobby_1,
    	json_extract('{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}',"$.hobbies[1]") as hobby_2,
    	json_extract('{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}',"$.hobbies[2]") as hobby_3,
    	json_extract('{"name":"zhangsan","tel_no":"136-6666-6666","hobbies":["basketball","run","sing"]}',"$.hobbies[3]") as hobby_4;
    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!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen