执行查询时出错。
SQLSTATE [42000]:语法错误或访问冲突:1104 SELECT 会检查超过MAX_JOIN_SIZE行
我必须 SET SQL_BIG_SELECTS = 1 。
我正在使用YII2并且不知道在哪里设置它。
请帮忙。
答案 0 :(得分:5)
来自docs
如果您需要在建立连接后立即执行SQL查询(例如,设置时区或字符集),则可以在[[yii \ db \ Connection :: EVENT_AFTER_OPEN]]事件处理程序中执行此操作。 / p>
return [
// ...
'components' => [
// ...
'db' => [
'class' => 'yii\db\Connection',
// ...
'on afterOpen' => function($event) {
// $event->sender refers to the DB connection
$event->sender->createCommand("SET SQL_BIG_SELECTS = 1")->execute();
}
],
],
// ...
];
或者在查询之前运行一次SQL查询:
$connection = \Yii::$app->getDb();
$res = $connection->createCommand("SET SQL_BIG_SELECTS = 1")->execute();