ERROR 1104 (42000): The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
な、なんだこのエラーは。。。
んで、GMOのiclustaってサービス使っている人はこれに悩まされるとか。
そんな長くないんだけどな。。。このFuピーーーーーーGMO!!!
ということで、問題のsqlを実行する前に下記行を追加するとなおります。
<?php $this->query('SET SQL_BIG_SELECTS=1');
だがしかし、全部のソースにいれるのは面倒なので、$this->find()
をoverrideすることにしました。
- ~/app/Model/AppModel.php
<?php class AppModel extends Model { /** * GMO アイクラスタの環境により、SQL_BIG_SELECTS を 1 にする * @override */ public function find($type = 'first', $query = array()) { // これを入れると長いSQLでもおk $this->query('SET SQL_BIG_SELECTS=1'); return parent::find($type, $query); } }
これでよし。