我正在destinations
字段存储为json
键入mysql
示例列值["Goa", "Moonar", "Kochi"]
我想获取与goa
匹配的所有行作为目标
但是,此行查询返回所需的结果
SELECT * FROM `packages`
WHERE JSON_CONTAINS(destinations, '["Goa"]');
但是上述查询的雄辩等价物是什么?
拉拉维尔5.3版
型号名称 : Search
可能被迫使用部分原始查询,例如:
use DB;
(文件定义顶部)
DB::table('packages')->whereRaw('json_contains(destinations, '["Goa"]')')->get();
如果您有模型:
Package::whereRaw('json_contains(destinations, '["' . $keyword . '"]')')->get();
假设您的上述查询适用于 SQL。
在 Laravel 5.6 及更高版本中,您可以使用 whereJsonContains 方法:
Package::whereJsonContains('destinations',["Goa"])->get();
但并非所有数据库都支持它:https://laravel.com/docs/5.6/queries#json-where-clauses