Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mengalih keluar medan json dalam mysql

Bagaimana untuk mengalih keluar medan json dalam mysql

WBOY
WBOYke hadapan
2023-05-28 13:24:444137semak imbas

    Petua Mysql untuk mendapatkan semula medan json

    Kadangkala sesetengah maklumat disimpan dalam pangkalan data dalam bentuk json Jika terlalu panjang, sql akan digunakan semasa proses mendapatkan semula. operasi akan menjadi lebih perlahan, dan ia akan menjadi lebih membazir jika anda hanya mendapat nilai kunci tertentu

    Gunakan fungsi JSON_EXTRACT() dalam mysql

    ±—±---------------------------------------------------------------+
    | id | data |
    ±—±---------------------------------------------------------------+
    | 1 | {“Tel”: “132223232444”, “name”: “david”, “address”: “Beijing”} |
    | 2 | {“Tel”: “13390989765”, “name”: “Mike”, “address”: “Guangzhou”} |
    ±—±---------------------------------------------------------------+
    select json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.tel");

    Gunakan get_json_object() dalam. spark sql

    select get_json_object(i.extra, '$.sale_currency');
    select sum(get_json_object(i.extra, '$.sale_price') * i.count) as sale_price;

    Mysql mendapat json Jika kunci tidak diketahui, dapatkan butiran nilainya

    { "selects" :{ "20071090" :{ "NN" : 41,
    "LXFS1" : "12365",
    "GH" : "20071090",
    "RZZW" : "办公室主任",
    "sxzym" : "园林植物与观赏园艺",
    "ZC" : "副教授",
    "XGW" : "行政管理后勤",
    "XB" : "男",
    "ZZMM" : "中共党员",
    "ZWZC" : "高级职称",
    "MZ" : "汉",
    "CSRQ" : 307123200000,
    "XL" : "硕士",
    "selectKey" : "20071090",
    "XM" : "张三",
    "GZBM" : "办公室",
    "PZGW" : "副教授三级岗位",
    "XW" : "农学硕士" }}}

    Dalam pangkalan data mysql ini, saya ingin mendapatkan nama yang ditandakan dengan warna merah, seperti yang ditunjukkan dalam gambar di atas

    Bagaimana untuk mengalih keluar medan json dalam mysql

    Buat paparan dan ambil nama medan ini Memandangkan kuncinya: "20071090" adalah dinamik dan tidak pasti, dan hanya akan muncul sekali di tempat ini, pertama. Saya mengambil kekunci lapisan pertama==>selects Nilai

    SELECT ZDLSXM->'$.selects' from VI_YXGR

    Bagaimana untuk mengalih keluar medan json dalam mysql

    Atas dasar ini, keluarkan lapisan lain Memandangkan lapisan ini ialah kunci dinamik, langkah pertama Kaedah ZDLSXM->'$ tidak boleh digunakan, jadi saya memilih kaedah substring_index untuk mengeluarkan pendakap, dan kemudian menggunakan CONCAT() untuk menyambungkannya ke dalam json baharu 🎜>

    Bagaimana untuk mengalih keluar medan json dalam mysql

     SELECT CONCAT("{",substring_index(substring_index(ZDLSXM->'$.selects', '{', -1),"}",1),"}") from VI_YXGR

    Bagaimana untuk mengalih keluar medan json dalam mysql

    Bagaimana untuk mengalih keluar medan json dalam mysql

    Anda boleh ambil nama ini dengan membungkusnya semula

    SELECT SE_ZDLSXM->'$.name' AS ZDLSXM from (
    SELECT CONCAT("{",substring_index(substring_index(ZDLSXM->'$.selects', '{', -1),"}",1),"}") as SE_ZDLSXM  from VI_YXGR
    ) sss

    Bagaimana untuk mengalih keluar medan json dalam mysql

    Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar medan json dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam