zoukankan      html  css  js  c++  java
  • mysql 查询json数组(一)

    -- 要查找的值
    SET @valueMapping = 17;
    
    -- 表字段:id, config
    -- config字段格式:
    /*
    {
        "fieldModels": [{
            "key": 0,
            "guid": "1",
            "field": "Id",
            "dataType": 1,
            "showName": "标识",
            "textFormat": "",
            "valueMapping": 17
        }, {
            "key": 1,
            "guid": "2",
            "field": "orderid",
            "dataType": 0,
            "showName": "orderid",
            "textFormat": "",
            "valueMapping": -1
        }
    }
    */
    -- 需求:查找 config JSON字段(对象类型)中 fieldModels(数组类型)数组字段中 valueMapping(整形)值等于 17 的记录
    
    -- 1、先提取 config JSON 字段中 fieldModels 属性,得到数组
    SELECT JSON_EXTRACT(`config`,'$.fieldModels') fieldModels FROM `sql_model`;
    
    -- 2、再从 fieldModels 数组中查找 valueMapping 的值是否等于查找的值,返回 1 或 0,表示是否已找到
    SELECT JSON_CONTAINS(JSON_EXTRACT(`config`,'$.fieldModels'), JSON_OBJECT('valueMapping', @valueMapping)) 是否已找到 FROM `sql_model`;
    
    -- 最后匹配结果
    SELECT id, config FROM `sql_model` 
    WHERE JSON_CONTAINS(JSON_EXTRACT(`config`,'$.fieldModels'), JSON_OBJECT('valueMapping', @valueMapping)) > 0;
    嘴角上扬,记得微笑
  • 相关阅读:
    vmstat
    linux内存机制
    TOP命令
    linux下查阅文件内容cat,more,less,tail
    linux stat命令
    linux修改主机名-IP
    alias
    linux软硬链接
    linux 常用find命令
    ubuntu下交叉编译imagemagick
  • 原文地址:https://www.cnblogs.com/jardeng/p/13725298.html
Copyright © 2011-2022 走看看