когда я пытаюсь выполнить запрос БД с 6 Соединениями, я получаю следующее сообщение об ошибке:
SQLSTATE[42000]: Syntax error or access violation: 1104 The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay
$results = DB::table('table_1') ->join('table_2', 'table_1.id', '=', 'table_2.id')
…
Мой вопрос: как я могу установить «SET SQL_BIG_SELECTS = 1» в запросе laravel?
я нашел решение 🙂
в app / config / database.php
изменить следующее:
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, ],
Для того, чтобы:
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'options' => array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET SESSION SQL_BIG_SELECTS=1', ), 'strict' => false, ],
Я добавил массив «options» и определил SQL_BIG_SELECTS
То есть, мы можем настроить PDO любым способом, который нам нужен!
Надеюсь, это полезно для других;)