Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Zend Framework 2 and SELECT count(*) query

I'm trying to do a query like this using Zend Framework 2:

SELECT count(*) as num FROM mytable

Here's the code I'm using to build my select statement (bear in mind I've imported the necessary classes):

$select = new Select();
$select->from('mytable')
       ->columns(array('num'=>'count(*)'), false);

This code doesn't work because the resulting query is as follows:

SELECT [count(*)] AS [num] FROM [mytable]

...which throws the following error:

Invalid column name 'count(*)'

This is caused by the square brackets around count(*). How can I get this to work properly, basically to have count(*) instead of [count(*)] in the SQL. Also, I know that you can do it with just a regular query, but I need this to work with the Select object. As far as I know, this used to work with the previous versions of Zend, I've seen plenty of solutions for those, but nothing for Zend Framework 2.

like image 727
Rocket04 Avatar asked Dec 10 '12 20:12

Rocket04


1 Answers

Somebody on another forum was kind enough to give me the answer for this. This is how it's done:

$select->columns(array('num' => new \Zend\Db\Sql\Expression('COUNT(*)')));
like image 50
Rocket04 Avatar answered Sep 20 '22 15:09

Rocket04