THE SAUNA これが噂のパラダイス
THE SAUNA これが噂のパラダイス
2009.12.14

findで件数をカウントするときのfieldsについて

まっちー

findメソッドでMySQLのDISTINCTを使いたいときはfieldsにDISTINCTでカラムを指定してやれば良い。

$params = array('fields' => 'DISTINCT user_id');

$this->Model->find('all', $params);

 €

さて、ここでfind(‘all’)ではなくてfind(‘count’)の場合、上のようにパラメータを指定すると、

Object of class stdClass could not be converted to int

みたいなエラーが出ることがある。

何を言ってるのかはよく分からないけど、このエラーが出たときはfieldsを以下のように書き換えるとエラーが消える。

$params = array('fields' => 'COUNT(DISTINCT user_id) AS `count`');

$this->Model->find('count', $params);

 €

ローカルではこんな風に書かなくてもエラーにならなかったのにサーバでテストしようと思ったら急にこんなエラーが出たんすけど…何でなんだろう。