Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.8k views
in Technique[技术] by (71.8m points)

MySQL 针对 json 字段条件查询

题目描述

MySQL 在5.7.8版本开始,就支持字段的数据类型为 json。json 类型可以存对象或者数据。如何解决当 json 列为多维数组的时的条件查询?

相关代码

表数据

image

情况一

当我明确知道 detail 数组只要一条数据时,我可以通过下面的条件进行查询。

SELECT * FROM `user` where detail->'$[0].pool_name' = '技术池';

得到如下结果:
image

情况二

此时,我将下标后移以为变成了 1。

SELECT * FROM `user` where detail->'$[1].pool_name' = '技术池';

得到如下结果:
image

你期待的结果是什么?

通过上面我们可以看出,我通过 where 条件去查询数据时,使用了下标 1 或者 0 才查询出数据,并且下标不同,结果也不同。
现目前,期望的是不通过指定某个下标就能访问到数据。例如,where detail->'$.pool_name' = '技术池',就能将所有pool_name的值为技术池的全部查询出来。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...