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;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM