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

Bagaimana untuk mengalih keluar medan json dalam mysql

WBOY
Lepaskan: 2023-05-28 13:24:44
ke hadapan
4137 orang telah melayarinya

    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”} |
    ±—±---------------------------------------------------------------+
    Salin selepas log masuk
    select json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.tel");
    Salin selepas log masuk

    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;
    Salin selepas log masuk

    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" : "农学硕士" }}}
    Salin selepas log masuk

    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
    Salin selepas log masuk

    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
    Salin selepas log masuk

    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
    Salin selepas log masuk

    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!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan