如何在Zend2的删除查询中使用限制和排序
问题描述:
我有以下sql查询,我需要在zend2中编写它。如何在Zend2的删除查询中使用限制和排序
DELETE FROM test_table WHERE user_id = 2 ORDER BY id ASC LIMIT 10
我试着用这样的:
$sql = new Sql($this->dbAdapter);
$delete = $sql->delete();
$delete->from('test_table');
$delete->where(array('user_id' => 4));
$delete->order('Id ASC');
$delete->limit(10);
$stmt = $sql->prepareStatementForSqlObject($delete);
$results = $stmt->execute();
但是当我加这两条线这是行不通的:
$delete->order('Id ASC');
$delete->limit(10);
答
你可以尝试以下方法:
$sql = new Sql($this->dbAdapter);
$delete = $sql->delete();
$delete->from('test_table');
$delete->where(array('user_id' => 4));
// get sql string
$deleteQuery = $sql->getSqlStringForSqlObject($delete);
// append the order by and limit
$deleteQuery .= " ORDER BY id ASC LIMIT 10";
// execute query
$result = $this->dbAdapter->query($deleteQuery, 'execute');
OR
$deleteQuery = "DELETE FROM test_table WHERE user_id = 2 ORDER BY id ASC LIMIT 10";
$result = $this->dbAdapter->query($deleteQuery, 'execute');
确定,但我怎么能实现在ZF2此查询? – Andreea