在实际开发中,我们经常会遇到数据字段类型为text,用来存储json类型的数据,但是当我们需要某一个json中的字段值的时候,就会感觉到头疼,当然我们可以使用多种方法,比如循环查询每次查询只查一个然后在json转译为数组,在获取值或者查出一个数据集合在通过foreach循环处理,不管哪种方式都绕不开循环但是,mysql已经提供了更好的方式,下面我们来看一下如何使用
1、mysql-json函数
mysql-json函数大家可以自行百度一下哈,这里不过多的赘述,我们直入主题
SELECT id FROM copy2 WHERE JSON_CONTAINS(JSON_EXTRACT(content, "$[*].sign"), '1');
json_extract函数,作用是查询制定的字段中是否存在key=xx的,以上述语句为例,含义为,查询copy2表中的content字段下的sign= 1的数据的id
需要注意的是,百度中很多举例都是一维数组的json查询,所以如果是一维数组的json则需要把语句变更为->SELECT id FROM copy2 WHERE JSON_CONTAINS(JSON_EXTRACT(content, "$.sign"), '1');
这样就可以通过mysql筛查出满足条件的id,在通过id进行后续的处理