JSON_CONTAINS()
あなたが探していることを正確に行います:
現在、Laravelのクエリビルダーは対応するAPIを提供していません。 オープンな内部提案 があります しかしそれのために。
それまでの間、生のクエリを実行できます:
\DB::table('users')->whereRaw(
'JSON_CONTAINS(meta->"$.colors", \'["red"]\')'
)->get();
これにより、meta->colors
に「red」が含まれるすべてのユーザーが返されます。 JSONフィールド。 ->
オペレーター
MySQL5.7.9以降が必要です。
whereRaw()
を呼び出すこともできます Eloquentモデルに直接。
Laravel 5.6
5.6リリースの時点で、Laravelのクエリビルダーには新しい whereJsonContains
メソッド。