MySQL字段是JsonArray格式怎么查询数据
表名:dc_sync_field_conf
number | sync_config |
---|---|
12345 | [{"syncFlag": 2, "fieldName": "typeXXX", "fieldText": "类型"}] |
67890 | [{"syncFlag": 0, "fieldName": "typeXXX", "fieldText": "类型"}] |
需要筛选出syncFlag = 0, fieldName = typeXXX 的 number 值
这个是错误示范,两个and的条件会作为Or,fieldName=typeXXX 或 syncFlag=0
SELECT number from dc_sync_field_conf
WHERE JSON_CONTAINS(sync_config, JSON_OBJECT('fieldName', "typeXXX"))
AND JSON_CONTAINS(sync_config, JSON_OBJECT('syncFlag', 0))
LIMIT 100;
这个是正确的
select number from dc_sync_field_conf
where JSON_CONTAINS(sync_config, JSON_OBJECT('fieldName', "typeNames", "syncFlag", 1))
JSON_OBJECT(k,v,k,v,......)
需要筛选出fieldName = typeXXX 的 syncFlag 值
select sync_config->'$[*].syncFlag' dc_sync_field_conf
where JSON_CONTAINS(sync_config, JSON_OBJECT('fieldName', "typeNames"))
LIMIT 100;