对 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 协议》,转载必须注明作者和本文链接
关于 LearnKu
学习了
您好,目前我有一种json数据格式,是json对象里包含数组,我想模糊搜索对象里数组的值该怎么写呢
{ "items": [ { "city": "杭州市", "total": "26.80", "mileage": "12.6", "car_type": "快车", "time_geton": "03-1114:30周五", "station_geton": "浙江吉桂投资有限公司", "station_getoff": "杭州火车站" { "city": "杭州市", "total": "16.10", "mileage": "10.1", "car_type": "快车", "time_geton": "03-2121:44周-", "station_geton": "浙江吉桂投资有限公司", "station_getoff": "金色蓝庭" } ] } 我想对item数组里的city字段进行模糊搜索应该怎么写呢
正解,官方方法对于数组json有坑