>  기사  >  데이터 베이스  >  mysql에서 json 필드를 제거하는 방법

mysql에서 json 필드를 제거하는 방법

WBOY
WBOY앞으로
2023-05-28 13:24:444054검색

    mysql에서 json 필드를 검색하기 위한 팁

    때때로 일부 정보가 json 형식으로 데이터베이스에 저장되는 경우, 특정 키 값만 검색하는 동안 SQL이 느리게 실행됩니다. 꽤 낭비입니다

    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");

    spark sql 함수를 사용하여 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을 사용하여 json을 가져오고, 키를 모르고 값 세부 정보를 가져옵니다.

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

    이 mysql 데이터베이스에 대해 생각해 보세요. 빨간색으로 표시된 이름을 선택하고 내용은 위에 표시된 것과 같습니다

    mysql에서 json 필드를 제거하는 방법

    뷰를 만들고 이 필드의 이름을 선택하세요. 키: "20071090"은 동적이며 불확실하며 이 위치에 한 번만 표시됩니다. , 먼저 첫 번째 레이어 key==>selects

    SELECT ZDLSXM->'$.selects' from VI_YXGR

    mysql에서 json 필드를 제거하는 방법

    아래의 값을 가져옵니다. 이 레이어는 동적 키이므로 첫 번째 단계 ZDLSXM->'$를 사용할 수 없습니다. .selects' 메서드를 사용하여 중괄호를 제거한 다음 CONCAT()을 사용하여 아래 아이콘의 빨간색 영역을 삭제했습니다.

    mysql에서 json 필드를 제거하는 방법

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

    mysql에서 json 필드를 제거하는 방법

    mysql에서 json 필드를 제거하는 방법

    그런 다음 포장하세요. 1층에서 이 이름을 가져가실 수 있습니다

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

    mysql에서 json 필드를 제거하는 방법

    위 내용은 mysql에서 json 필드를 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제