题目描述
MySQL 在5.7.8版本开始,就支持字段的数据类型为 json。json 类型可以存对象或者数据。如何解决当 json 列为多维数组的时的条件查询?
相关代码
表数据
情况一
当我明确知道 detail 数组只要一条数据时,我可以通过下面的条件进行查询。
SELECT * FROM `user` where detail->'$[0].pool_name' = '技术池';
得到如下结果:
情况二
此时,我将下标后移以为变成了 1。
SELECT * FROM `user` where detail->'$[1].pool_name' = '技术池';
得到如下结果:
你期待的结果是什么?
通过上面我们可以看出,我通过 where 条件去查询数据时,使用了下标 1 或者 0 才查询出数据,并且下标不同,结果也不同。
现目前,期望的是不通过指定某个下标就能访问到数据。例如,where detail->'$.pool_name' = '技术池',就能将所有pool_name的值为技术池的全部查询出来。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…