易截截图软件、单文件、免安装、纯绿色、仅160KB

mysql得到查询结果的同时统计查询结果的数目

做一些数据库查询,不仅希望得到要查询的结果,还希望方便地统计一下查询结果中有多少条记录。我通常的做法是:
$q = "select * from $fromTable where $where limit $start,$pageSize";
$r = mysql_query($q);
$q = "select count(*) from $fromTable where $where";
$cnt = mysql_query($q);

然可以用mysql_num_rows()或者mysql_affected_rows()来在第一次查询后得到记录数目,但是这两个函数返回的都是查询
后得到的结果的数目,是受limit语句的影响的。很多情况下,需要知道这条查询语句在没有limit的情况下结果总数,比如分页查询。
mysql
中本身支持一种更好的方法来达到上面的效果,那就是使用SQL_CALC_FOUND_ROWS和FOUND_ROWS()函数。见:http:
//dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows
应用举例:
mysql> SELECT SQL_CALC_FOUND_ROWS * from tbl_name
-> WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();


相关文档:

mysql存储过程 例子 游标cursor 循环嵌套 事物

昨天要mysql中写存储过程发现网上有关于cursor循环且套的资料很少,现发出本人写的例子,希望能对大家有帮助.
看招:
DELIMITER $$
USE `ad_db`$$
DROP PROCEDURE IF EXISTS `test`$$
CREATE DEFINER=`root`@`%` PROCEDURE `test`()
BEGIN
     /** CPA效果数 */
DECLARE _tmpId1 INT; 
DECLARE ......

mysql中union和union all的区别和注意点


昨天有个功能要实现排行效果,而且是随机按照某些字段的总值,但是第一个又要不一样,因为第一个人给了钱,所以要排第一。
打个比方吧,表(userinfo)中有这几个字段:username,isvalid,givedmoney,sumip,dayip,monthip,visitcount,regdate
现在要实现显示排行前10位用户,
     出现在排行第一位 ......

mysql调用后

用mysql_query,mysql_fetch_array()后应该要
free_result().function count_admin($where = '')
{
if($where) $where = " WHERE $where";
$result = $this->db->get_one("SELECT count(*) as num from $this->table_admin_role $where");
return $result['num'];
} ......

mysql sql 百万级数据库优化方案

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎
放弃使用索引而进行全表扫描,如:
select id from t where num is null
可以在num上设置
默认值0,确保表中num列没有null值,然后这
样查询:
sel ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号