Maison >base de données >tutoriel mysql >Comment supprimer le champ json dans MySQL

Comment supprimer le champ json dans MySQL

WBOY
WBOYavant
2023-05-28 13:24:444134parcourir

    Conseils pour récupérer les champs json à partir de mysql

    Parfois, certaines informations sont stockées dans la base de données sous forme json si elles sont trop longues, le SQL s'exécutera plus lentement pendant le processus de récupération si seules certaines valeurs clés sont. récupéré, ce sera du gaspillage

    Utilisez la fonction JSON_EXTRACT()

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

    dans Spark SQL Utilisez get_json_object()

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

    mysql pour obtenir json Si vous ne connaissez pas la clé, obtenez sa valeur détaillée

    { "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" : "农学硕士" }}}
    .

    Pensez à cette base de données mysql Prenez un nom marqué en rouge et le contenu est comme indiqué dans l'image ci-dessus

    Comment supprimer le champ json dans MySQL

    Créez une vue et prenez le nom de ce champ Puisque sa clé : "20071090" est dynamique et incertaine, et il n'apparaîtra qu'une seule fois à cet endroit, je prends d'abord La valeur sous le premier calque key==>selects

    SELECT ZDLSXM->'$.selects' from VI_YXGR

    Comment supprimer le champ json dans MySQL

    Sur cette base, prenez un autre calque Puisque ce calque est une clé dynamique, la première étape. La méthode ZDLSXM->'$ ne peut pas être utilisée. J'ai donc choisi la méthode substring_index pour supprimer les accolades, puis j'ai utilisé CONCAT() pour la fusionner dans un nouveau json. Supprimez la zone rouge de l'icône ci-dessous

    .

    Comment supprimer le champ json dans MySQL

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

    Comment supprimer le champ json dans MySQL

    Comment supprimer le champ json dans MySQL

    et ensuite l'emballer Tu peux prendre ce nom au premier étage

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

    Comment supprimer le champ json dans MySQL

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer