MySQL的JSON数据查询问题

ge洋 发布于 01/14 15:45
阅读 301
收藏 1

数据表中有两个JSON字段:  handle_item,   handle_status

handle_item:  {"pre": {}, "offer": {"ei": "报增", "es": "报减", "mi": "变更", "oi": "报增", "rg": "报减"}}

handle_status:  {"pre": {}, "offer": {"ei": "9", "es": "10", "mi": "11", "oi": "14", "rg": "13"}}

现在要查询:  handle_item 中存在 '报增'  且  对应  handle_status  为  '14'  的 那条数据

SELECT
	JSON_SEARCH(handle_item, 'all', '报增', NULL, '$.offer.*') item, 
	JSON_SEARCH(handle_status, 'all', '14', NULL, '$.offer.*') status14
FROM `b_insured_item`
WHERE JSON_CONTAINS(JSON_SEARCH(handle_item, 'all', '报增', NULL, '$.offer.*'), JSON_SEARCH(handle_status, 'all', '14', NULL, '$.offer.*'))

该SQL无法解决两数组交集问题,  有没有什么好的查询办法?????

 

 

 

加载中
0
teririri
teririri
用表的自连接可以吗?不过我还查过JSON,不知道MYSQL是否支持
0
teririri
teririri
select json_search(xxx) from tb a join tb b on json_search(b.xxx) = ? where json_contains(a.xxx)
0
定期马甲
定期马甲

 放弃这样设计

表结构修改成一对多

enum映射保存“ 报增 ” “ 报减 ” 状态

json存储统计修改查询都不方便

0
韩梦芫
韩梦芫

{"name":"张三","sex":"1"}

返回顶部
顶部

页面底部区域 foot.htm