我想知道表中有多少行。我正在使用的數據庫是一個MySQL數據庫。我已經有一個Db_Table類,用於撥打電話fetchAll()
。但是我不需要表中的任何信息,只需要計算行數。如何在不致電fetchAll()
的情況下統計表格中的所有行?Zend_Db:如何從表中獲取行數?
回答
$count = $db->fetchOne('SELECT COUNT(*) AS count FROM yourTable');
你可以做fetchAll
認爲是有害的一個
SELECT COUNT(*)
FROM your_table
$dbo->setFetchMode(Zend_Db::FETCH_OBJ);
$sql = 'SELECT COUNT(*) AS count FROM @table';
$res = $dbo->fetchAll($sql);
// $res[0]->count contains the number of rows
計數行。
這裏是如何做到這一點的Zend_Db_Select對象的方法:
$habits_table = new Habits(); /* @var $habits_table Zend_Db_Table_Abstract */
$select = $habits_table->select();
$select->from($habits_table->info(Habits::NAME), 'count(*) as COUNT');
$result = $habits_table->fetchRow($select);
print_r($result['COUNT']);die;
你爲什麼說「用fetchAll計數行被認爲是有害的」? – Andrew 2009-12-18 23:44:29
嗯,你正在加載你的整個表到內存... – 2009-12-19 01:12:59
加計數功能來爲您Zend_Db的對象要統計所有錶行
public function count()
{
return (int) $this->_table->getAdapter()->fetchOne(
$this->_table->select()->from($this->_table, 'COUNT(id)')
);
}
不適用於過濾 - 請參閱我的答案... – 2011-06-16 05:56:50
再次閱讀,問題不是過濾! – 2011-06-19 13:29:14
啊。對不起:(如果你編輯你的答案(單個字符會做)我可以恢復downvote ... :) – 2011-06-21 08:24:03
正確的Zend-方法是使用Zend_Db_Select對象像這樣:
$sql = $table->select()->columns(array('name', 'email', 'status'))->where('status = 1')->order('name');
$data = $table->fetchAll($sql);
$sql->reset('columns')->columns(new Zend_Db_Expr('COUNT(*)'));
$count = $table->getAdapter()->fetchOne($sql);
這是在Zend_Paginator中完成的。另一種選擇是你的列列表前增加SQL_CALC_FOUND_ROWS
然後得到發現行與此查詢次數:
$count = $this->getAdapter()->fetchOne('SELECT FOUND_ROWS()');
什麼是$表? – 2011-06-15 20:57:04
它是Zend_Db_Table實例。或者它也可以是Zend_Db_Adapter。 metod在兩個。它爲DbTable返回Zend_Db_Table_Rowset,爲適配器返回數組... – 2011-06-16 05:56:11
如果您需要計算已經丟失了原始結果集的作假查詢的結果,此答案尤其有用... +1 – nzn 2017-10-30 06:59:08
我是那種簡約的:
public function count()
{
$rows = $db->select()->from($db, 'count(*) as amt')->query()->fetchAll();
return($rows[0]['amt']);
}
一般可以使用在所有表。
- 1. 如何從MySQL表中獲取行號?
- 2. 如何從表中獲取所有行
- 3. 如何獲取mysql表中的行數
- 4. 如何從數組中獲取列表
- 5. 如何從表格中獲取數據
- 6. 如何從sqllite表中獲取數據
- 7. 如何從表格中獲取數據
- 8. 如何從列表中獲取數據
- 9. 如何從表單中獲取數據?
- 10. 從mySql中的表中獲取行數
- 11. 如何從數據庫中獲取最大行數的表?
- 12. Zend_Db不刪除表格行
- 13. 如何從表中獲取的行數CakePHP中
- 14. 從數據庫表中獲取行android
- 15. 從數據庫表中獲取整行
- 16. 如何從YUI數據表中獲取選定行的內容?
- 17. 如何從mysql表中獲取總行數?
- 18. 如何從圖表中獲取運行總數?
- 19. 如何從數據表中獲取一組行
- 20. 如何從數據表中獲取行號?
- 21. 如何從數據表中獲取特定行的記錄?
- 22. 如何使用angularjs從表格中獲取行數據
- 23. 如何從Struts JSP表中使用javascript獲取行數
- 24. 如何從數據庫表中獲取下一行?
- 25. 如何從兩個表中獲取數據作爲一行
- 26. 如何從表格行獲取值?
- 27. 如何獲取從循環中獲取的總行數?
- 28. 如何從列表中獲取列表
- 29. 如何從sqlite數據庫獲取行?
- 30. 如何從OdbcDataReader獲取行數?
+1爲fetchOne而不是fetchRow – 2011-05-15 22:37:37