- 単一のキーと値のマッチング:
$posts = DB::table('posts')
->where('meta->key', '=', 'value')
->get();
上記の例では、'posts'というテーブルから'meta'カラム内のJSONデータの特定のキーと値をマッチングさせています。
- 配列の要素の一致:
$posts = DB::table('posts')
->whereJsonContains('meta->tags', ['tag1', 'tag2'])
->get();
上記の例では、'posts'テーブルの'meta'カラム内の'tags'キーが、'tag1'または'tag2'のいずれかを含んでいるレコードを検索しています。
- 複雑な条件の組み合わせ:
$posts = DB::table('posts')
->whereJsonContains('meta->tags', ['tag1', 'tag2'])
->where('status', '=', 'published')
->orWhereJsonContains('meta->author', ['John', 'Jane'])
->get();
上記の例では、'posts'テーブルの'meta'カラム内の'tags'キーが'tag1'または'tag2'のいずれかを含み、かつ'status'カラムが'published'であるレコード、または'meta'カラム内の'author'キーが'John'または'Jane'のいずれかを含むレコードを検索しています。
これらはいくつかの基本的な検索の例ですが、Laravelではより複雑なJSONクエリもサポートしています。詳細については、Laravelの公式ドキュメントを参照してください。