sql >> Base de Datos >  >> RDS >> Mysql

Seleccione, donde contiene JSON Array

JSON_CONTAINS() hace exactamente lo que estás buscando:

Actualmente, el generador de consultas de Laravel no proporciona una API correspondiente. Hay una propuesta interna abierta para eso sin embargo.

Mientras tanto, puede ejecutar una consulta sin formato:

\DB::table('users')->whereRaw(
    'JSON_CONTAINS(meta->"$.colors", \'["red"]\')'
)->get();

Lo que devolvería todos los usuarios que tienen "rojo" en sus meta->colors campo JSON. Tenga en cuenta que el -> operador requiere MySQL 5.7.9+.

También puede llamar al whereRaw() directamente en un modelo Eloquent.

Laravel 5.6

A partir de la versión 5.6, el generador de consultas de Laravel contiene un nuevo whereJsonContains método.