使用模型内的query()方法从表中获取单个值

I have a very complex setup on my tables and achieving this via any of the find() methods is not an option for me, since I would need to fix relationships between my tables and I don't have the time right now, so I'm looking for a simple fix here.

All I want to achieve is run a query like this:

SELECT MAX( id ) as max FROM MyTable WHERE another_field_id = $another_field_id

Then, I need to assign that single id to a variable for later use.

The way I have it now it returns something like [{{max: 16}}], I'm aware I may be able to do some PHP on this result set to get the single value I need, but I was hoping there was already a way to do this on CakePHP.

Assuming you have a model for your table and your are using CakePHP 2.x, do:

$result = $this->MyTable->field('id', array('1=1'), 'id DESC');

This will return a single value.

see Model::field()

This example is directly from the CakePHP documentation. it seems you can use the find method of a model to get count

$total = $this->Article->find('count');
    $pending = $this->Article->find('count', array(
        'conditions' => array('Article.status' => 'pending')
    ));
    $authors = $this->Article->User->find('count');
    $publishedAuthors = $this->Article->find('count', array(
       'fields' => 'DISTINCT Article.user_id',
       'conditions' => array('Article.status !=' => 'pending')
    ));