对 JSON 数据的搜索
对json数据的搜索
"meta": {
"wants_newsletter": true,
"favorite_color": "red"
}
数据库存储形式 {"wants_newsletter": true, "favorite_color": "red" }
where(‘channel->favorite_color’,’red’) 模型和数据库查询都可以
数据库存储形式 ["2222","2222"]
whereRaw("JSON_CONTAINS(channel,'[\"$da\"]')")
数据库存储形式 [2222,2222]
whereRaw("JSON_CONTAINS(channel,'$da')")
数据库存储形式 [222,2222]
whereRaw("JSON_CONTAINS(channel,'[".$da."]')")
数据库存储形式[{"wants_newsletter": true, "favorite_color": "red" },{"wants_newsletter": true, "favorite_color": "red" }]
whereRaw("channel-> '$[*].favorite_color' LIKE '%$fiel%'")
w.val -> '$[*].*' LIKE '%峰%'
1.w.val字段是JSON数组[无所谓JSONObject还是JSONArray]
[反正如果按照对象查,那数组是匹配不到的]
[反之,如果按照数组查,对象也是匹配不到的]
2.'$[*].*'
代表查询JSONArray 数组格式的JSON字符串中,
第一个* 代表任意下标
第二个* 代表任意属性
3.LIKE '%峰%'
匹配条件和正常sql 查询条件一样 写
对json数据的存储
数据库类型为 json类型
模型文件设置
protected $casts = [
'file' => 'json', // 声明json类型\
'file' => 'json', // 声明json类型\
]
postman
raw application/json
file:["222","222"]
[原生操作地址](https://www.cnblogs.com/ShouWangYiXin/p/10567951.html)
新增数组查询
例如字段channel 字段值 [{"channels":"3"}]
JSON_CONTAINS(channel,JSON_OBJECT('channels', "3"))
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: