如何使用 Zend_Db_Table 选择列的最大值?

发布于 2024-10-25 02:47:47 字数 135 浏览 4 评论 0原文

使用 Zend_Db_Table 从表中选择列的最大值的最简单、最简单的方法是什么?基本上,我只想在 Zend 中运行这个查询:

SELECT MAX(id) AS maxID FROM myTable;

What is the easiest, simplest way to select the max of a column from a table using Zend_Db_Table? Basically, I just want to run this query in Zend:

SELECT MAX(id) AS maxID FROM myTable;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

淡墨 2024-11-01 02:47:47

您需要使用 Zend_Db_Expr 来使用 mysql 函数:

return $this->fetchAll(
            $this->select()
                ->from($this, array(new Zend_Db_Expr('max(id) as maxId')))
            )
    );

You need to use Zend_Db_Expr to use mysql functions:

return $this->fetchAll(
            $this->select()
                ->from($this, array(new Zend_Db_Expr('max(id) as maxId')))
            )
    );
那些过往 2024-11-01 02:47:47

您可以使用 $db->query(); 运行直接 sql,您的操作将很简单:

$db->query("SELECT MAX(id) AS maxID FROM myTable");

但如果您想要对象表示法,那么您将执行以下操作:

$db->select()->from("myTable", array(new Zend_Db_Expr("MAX(id) AS maxID")));

You can run direct sql, using $db->query(); yours would simply be:

$db->query("SELECT MAX(id) AS maxID FROM myTable");

but if you want the object notation, then you'd do something like this:

$db->select()->from("myTable", array(new Zend_Db_Expr("MAX(id) AS maxID")));
霊感 2024-11-01 02:47:47

对于那些希望从 Zend Framework 2 中的 id 列(也可能是 3)中选择最大 id 的人,但收到此错误...

处理主键数据时,在数据数组中找不到已知的键 ID

...请注意,您需要将 MAX(id) 别名为 id

TableGateway 类扩展的表内的示例:

$select = $this->sql->select();
$select->columns(['id' => new Expression('MAX(id)')]);
$maxId = $this->selectWith($select)->current()->id;
return (int) $maxId;

For those looking to just select the max id from their id column in Zend Framework 2 (maybe 3 as well), but getting this error...

While processing primary key data, a known key id was not found in the data array

...note that you'll need to alias MAX(id) as id.

Example inside a table extended from the TableGateway class:

$select = $this->sql->select();
$select->columns(['id' => new Expression('MAX(id)')]);
$maxId = $this->selectWith($select)->current()->id;
return (int) $maxId;
俯瞰星空 2024-11-01 02:47:47

另一种方法是这样的:

$select=new Zend_Db_Select($db);
$select->from(array($table),array('max($column)'));
$select->where('condition');
$answer=$db->fetchOne($select);

如果你这样做,你以后可以更容易地编辑它!

Another way is like this :

$select=new Zend_Db_Select($db);
$select->from(array($table),array('max($column)'));
$select->where('condition');
$answer=$db->fetchOne($select);

If You do it like this , you can edit it later easier!!!

绮烟 2024-11-01 02:47:47
$select = new Select();
$select->from('tablename');
$select->where(array('post_id', 1));
$select->columns(array('id' => new Expression('MAX(id)')));
$results = $this->getTableGateway()->selectWith($select);
$select = new Select();
$select->from('tablename');
$select->where(array('post_id', 1));
$select->columns(array('id' => new Expression('MAX(id)')));
$results = $this->getTableGateway()->selectWith($select);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文