sql >> Databáze >  >> RDS >> Mysql

Vyberte, kde JSON Array obsahuje

JSON_CONTAINS() dělá přesně to, co hledáte:

Tvůrce dotazů Laravel aktuálně neposkytuje odpovídající API. Existuje otevřený interní návrh za to však.

Mezitím můžete provést nezpracovaný dotaz:

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

Což by vrátilo všechny uživatele, kteří mají ve svých meta->colors "červenou". pole JSON. Všimněte si, že -> operátor vyžaduje MySQL 5.7.9+.

Můžete také zavolat whereRaw() přímo na výmluvném modelu.

Laravel 5.6

Od verze 5.6 obsahuje nástroj pro tvorbu dotazů Laravel nový whereJsonContains metoda.



  1. Export a import všech databází MySQL najednou

  2. 2 způsoby, jak získat počet dní v měsíci v Oracle

  3. Najděte maximální hodnotu a zobrazte odpovídající hodnotu z jiného pole na serveru SQL

  4. Řešení problémů s replikací z databázových klastrů bez GTID do GTID MariaDB