Mysql
 sql >> база данни >  >> RDS >> Mysql

Изберете къде съдържа JSON масив

JSON_CONTAINS() прави точно това, което търсите:

Понастоящем конструкторът на заявки на Laravel не предоставя съответен API. Има отворено предложение за вътрешни елементи за това все пак.

Междувременно можете да изпълните необработена заявка:

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

Което ще върне всички потребители, които имат "червено" в своите meta->цветове JSON поле. Имайте предвид, че -> оператор изисква MySQL 5.7.9+.

Можете също да извикате whereRaw() директно върху модел Eloquent.

Laravel 5.6

От изданието 5.6 конструкторът на заявки на Laravel съдържа нов whereJsonContains метод.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. конвертирайте mysql резултата в json с правилни типове

  2. Laravel Eloquent с две „WHERE NOT IN“ в подзаявка

  3. Естествена таблица 'performance_schema'.'???' има грешна структура

  4. Да съхранявате html обекти в базата данни? Или да конвертирате при извличане?

  5. Java PreparedStatement и ПРИ АКТУАЛИЗИРАНЕ НА ДУБЛИКАТ КЛЮЧ:как да разбера дали редът е бил вмъкнат или актуализиран?