0

How to do something like this in zend:

SELECT LEFT(log_browser, LOCATE(' ', log_browser)) AS browser, COUNT(*) AS amount
FROM logs
GROUP BY LEFT(log_browser, LOCATE(' ', log_browser))

2 Answers2

0

try : $select->from($name, $column)->group()

$select->from("logs", array("LEFT(log_browser, LOCATE(' ', log_browser))" => "browser" ,"count(*)" => "amount"))
       ->group(array("LEFT(log_browser, LOCATE(' ', log_browser)");

more info how how this works http://framework.zend.com/manual/1.12/en/zend.db.select.html#zend.db.select.building.group

Dins

Dinesh
  • 3,065
  • 1
  • 18
  • 19
0

Use Zend_Db_Expr class for expressions statements:

$browserExpr = new Zend_Db_Expr('LEFT(log_browser, LOCATE(" ", log_browser))');
$select->from("logs", array('browser' => $browserExpr))->group($browserExpr);
Dmitry Yaremenko
  • 2,542
  • 20
  • 31