Zend Framework 2 和 SELECT count(*) 查询

2024-01-11

我正在尝试使用 Zend Framework 2 执行这样的查询:

SELECT count(*) as num FROM mytable

这是我用来构建 select 语句的代码(请记住我已经导入了必要的类):

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

此代码不起作用,因为生成的查询如下:

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

...这会引发以下错误:

Invalid column name 'count(*)'

这是由 count(*) 周围的方括号引起的。我怎样才能让它正常工作,基本上是在 SQL 中使用 count(*) 而不是 [count(*)] 。另外,我知道您可以仅使用常规查询来完成此操作,但我需要它与 Select 对象一起使用。据我所知,这曾经适用于 Zend 的早期版本,我已经看到了很多针对这些的解决方案,但没有任何适用于 Zend Framework 2 的解决方案。


另一个论坛上的人很友善地给了我这个问题的答案。它是这样完成的:

$select->columns(array('num' => new \Zend\Db\Sql\Expression('COUNT(*)')));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zend Framework 2 和 SELECT count(*) 查询 的相关文章

随机推荐