CodeIgniter框架对数据库查询结果进行统计
2023-09-14 08:56:53 时间
假设有一个user表,如果要查询符合条件sex=male的记录数量,有下面几种方法:
方法一:先取回所有符合条件的记录,再count
$res = $this->db->query("select * from user where sex='male'")->result_array(); $num = count( $res );
不推荐上面的做法,因为我们的目的不是取回表中的数据,只需要具体的行数。取回数据的过程就是一个多余的操作,会浪费很多资源!
方法二:在SQL语句中使用count(*)
$sql = "select count(*) num from user where sex='male'"; $res = $this->db->query($sql)->row_array(); $num = $res['num'];
方法三:在取结果之前打印query返回值,通过获取query内部的属性名来获取num_rows,注意全是属性,不能使用数组格式访问:
$sql = "select * from user where sex='male'"; $res = $this->db->query($sql); print_r($res);
访问程序,打印结果如下:
CI_DB_mysqli_result Object ( [conn_id] => mysqli Object ( [affected_rows] => 130 [client_info] => mysqlnd 5.0.11-dev - 20120503 - $Id: ....... $ [client_version] => 50011 [connect_errno] => 0 [connect_error] => [errno] => 0 [error] => [error_list] => Array() [field_count] => 25 [host_info] => Localhost via UNIX socket [info] => [insert_id] => 0 [server_info] => 5.1.73-log [server_version] => 50173 [stat] => ........ [sqlstate] => 00000 [protocol_version] => 10 [thread_id] => 28698933 [warning_count] => 0 ) [result_id] => mysqli_result Object ( [current_field] => 0 [field_count] => 25 [lengths] => [num_rows] => 130 [type] => 0 ) [result_array] => Array() [result_object] => Array() [custom_result_object] => Array() [current_row] => 0 [num_rows] => [row_data] => )
可以注意到这里面有一个conn_id->affected_rows和 result_id->num_rows,所以可以通过这两个值获得结果集的记录数量:
echo $res->conn_id->affected_rows; echo $res->result_id->num_rows;
第三种方法并不是很好的选择,推荐第二种,提到第三种方法的目的在于了解query的返回值,然后可以自己根据结果写一些helper来处理一些事情
相关文章
- Flask 学习-14.Flask-SQLAlchemy ORM操作数据库增删改查
- 数据库-MySQL-基础(6)- DCL
- MySQL查看数据库间连接数统计(mysql查看链接数)
- 统计Oracle数据库中表的数量(oracle统计表数量)
- JSP JDBC访问数据库
- Oracle 数据库右截取实战(oracle右截取)
- Redis服务器中数据库大小的统计与分析(redisdbsize)
- 利用Oracle数据库实现更高效的统计更新(oracle统计更新)
- Oracle 数据库:按照月份统计数据。(oracle按月份统计)
- 数据库工程师刘安峰:Oracle数据库专业的行业精英!(刘安峰oracle)
- 提高数据库性能,掌握Oracle 统计信息维护技巧(oracle统计信息)
- MSSQL高级注入技术:完美攻破数据库防御(mssql 高级注入)
- MSSQL统计数据库行数揭秘(mssql 统计行数)
- 查看Oracle数据库连接数的方法(查看连接数oracle)
- Oracle数据库强制删除表的方法(oracle 强制删除表)
- Oracle数据库全表统计分析(oracle全表数据统计)
- 使用Oracle数据库中的统计函数进行数据分析(oracle中的统计函数)
- Oracle数据库中对数据的分段统计分析(oracle中分段统计)
- 熟悉Oracle11g指令 了解数据库操作(oracle11g的指令)
- 最新统计排名前十的SQL和NoSQL数据库排行榜