zoukankan      html  css  js  c++  java
  • mysql 数据库,某个字段是json类型,验证json里的某个字段的值

    查询数据库中某个字段是json类型里某个具体字段的值:

    select * from table where  json字段名 -> '$.json里的字段名' >= 0.3

    例如:

    数据库中某字段是json类型,并且json里有数组格式的数据,需要查询

    data
    {'age': ["AGE_BETWEEN_24_30", "AGE_BETWEEN_31_40"]}
    {'age': ["AGE_BETWEEN_24_30"]}
    {'age': []}

    json里的字段有数组类型,查询数组是空的数据

    select * from table  where   json字段名 -> '$.json里的字段名' like '[]' 

    json里的字段有数组类型,查询数组是具体值的数据

    select * from table  where   json字段名 -> '$.json里的字段名' like '["AGE_BETWEEN_24_30", "AGE_BETWEEN_31_40"]' 

    json里的字段有数组类型,查询数组不是具体值的数据

    select * from table  where   json字段名 -> '$.json里的字段名'  not  like '["AGE_BETWEEN_24_30", "AGE_BETWEEN_31_40"]' 

    json里的值某个字段缺失,查询所有json里不包含这个字段的数据

    select * from table  where   json字段名 -> '$.json里的字段名' is null 

    遇到新问题:

    数据库中某个字段是json类型,json里有数组格式的字段,需要将数组格式的字段单独提取并且转化为字符串格式,来跟其他表关联查询

    提取并转化数组格式的字段:

    select REPLACE(REPLACE(json_extract(json字段名, "$.数组格式的字段名"),'[ " ',' '),' " ] ',' ') as imageId from table;

    例如:

    select REPLACE(REPLACE(json_extract(data, "$.age"),'[ " ',' '),' " ] ', ' ') as age from table;

  • 相关阅读:
    返回顶部
    C# 对文本文件的几种读写方法
    cocos2dx 锁定30帧设置
    AndroidManifest.xml 屏幕上下反转
    粒子系统主
    CCParticleSystem粒子系统
    精灵的优化
    cocos2dx 菜单按钮回调方法传参 tag传参
    cocos2dx跨平台使用自定义字体
    ios7 Cocos2dx 隐藏状态栏设置
  • 原文地址:https://www.cnblogs.com/duhongjin/p/15666894.html
Copyright © 2011-2022 走看看