JSON_CONTAINS()
thực hiện chính xác những gì bạn đang tìm kiếm:
Hiện tại, trình tạo truy vấn của Laravel không cung cấp API tương ứng. Có một đề xuất nội bộ mở cho nó mặc dù.
Trong thời gian chờ đợi, bạn có thể thực hiện một truy vấn thô:
\DB::table('users')->whereRaw(
'JSON_CONTAINS(meta->"$.colors", \'["red"]\')'
)->get();
Điều này sẽ trả về tất cả người dùng có "màu đỏ" trong meta->colors
của họ Trường JSON. Lưu ý rằng ->
nhà điều hành
yêu cầu MySQL 5.7.9+.
Bạn cũng có thể gọi whereRaw()
trực tiếp trên một mô hình Eloquent.
Laravel 5.6
Kể từ bản phát hành 5.6, trình tạo truy vấn của Laravel chứa whereJsonContains
phương pháp.