1 在实际的开发过程中,可能某个字段存储大量的数据,比如某个材料包含多种原材料,比如手机包含,金银铜铁,这在前端搜索的时候,可能是单个或者多个去查询去匹配,这时候可以利用mysql的json_contains来进行查询。
数据库字段可以是varchar(1024)类型。
在查询的时候有两种:1 针对单个 2针对多个
1针对单个:
select *
from phone
where JSON_CONTAINS(elements, concat('"',#{element}, '"'))
and is_delete = 0
2 针对多个:
int size = countryIds.size() - 1;
int incr = 0;
for (String countryId: countryIds) {
queryWrapper.apply("json_contains(country_ids,'" + countryId + "')");
if(incr < size) {
queryWrapper.or();
}
incr++;
}