-- 需求:查找 config JSON字段(对象类型)中 fieldModels(数组类型)数组字段中 valueMapping(整形)值等于 17 的记录
-- 1、先提取 config JSON 字段中 fieldModels 属性,得到数组
SELECT JSON_EXTRACT(`config`,'$.fieldModels') fieldModels FROM `sql_model`;
-- 2、再从 fieldModels 数组中查找 valueMapping 的值是否等于查找的值,返回 1 或 0,表示是否已找到
SELECT JSON_CONTAINS(JSON_EXTRACT(`config`,'$.fieldModels'), JSON_OBJECT('valueMapping', @valueMapping)) 是否已找到 FROM `sql_model`;
-- 最后匹配结果
SELECT id, config FROM `sql_model`
WHERE JSON_CONTAINS(JSON_EXTRACT(`config`,'$.fieldModels'), JSON_OBJECT('valueMapping', @valueMapping)) > 0;
嘴角上扬,记得微笑