Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Selecione, onde JSON Array contém


JSON_CONTAINS() faz exatamente o que você está procurando:

Atualmente, o construtor de consultas do Laravel não fornece uma API correspondente. Há uma proposta interna aberta por isso embora.

Enquanto isso, você pode executar uma consulta bruta:
\DB::table('users')->whereRaw(
    'JSON_CONTAINS(meta->"$.colors", \'["red"]\')'
)->get();

Que retornaria todos os usuários que têm "vermelho" em suas meta->cores Campo JSON. Observe que o -> operador requer MySQL 5.7.9+.

Você também pode chamar o whereRaw() diretamente em um modelo Eloquent.

Laravel 5.6


A partir da versão 5.6, o construtor de consultas do Laravel contém um novo whereJsonContains método.