重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
第一、phpmyadmin 的查询结果显示了分页数据、总条数信息及索引信息,看似只执行了一次查询,实际上是做了多次查询的,只是页面中没显示出来,但是查看 mysql 的运行日志就会发现,其实已经执行了很多条 sql 语句,因为 phpmyadmin 的操作基本都是批量执行增删改查的;
创新互联-专业网站定制、快速模板网站建设、高性价比常山网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式常山网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖常山地区。费用合理售后完善,十多年实体公司更值得信赖。
第二、有一种方式可以实现只查询一次就能达到分页的效果,但实际上这种方式是不推荐的,性能比查询两次(一次查总数,一次查分页数据)低了很多,尤其在数据量越大的时候差异越明显;
一次查询的思路是:一次性把满足条件的数据全都查出来,然后再从结果中去取实际分页中要显示的那部分数据;例如,根据标题搜索数据,每页显示20条,一次性总共查出来 1000 条数据,显示第一页的时候就只获取前面的20条,第二页就取第21-40条,第三页就只取41-60条,后面的依次类推。
可想而知,这种查询是很浪费的,我明明只要那一部分数据,却查出了所有的,剩下那部分就根本没用。尤其在数据量大的时候,上万条百万条等等,性能就更差了,如果再加上高并发,那基本就要崩溃了。
所以做分页一般都是查两次比查一次好得多
mysql_connect("localhost","root","123456") or
die("打开数据库服务器失败!"); //连接数据库
mysql_select_db("a") or
die("打开数据库a失败!"); //打开数据库,a为数据库名
$sql = "select id from b"; //id为字段名,b为表名
$result=mysql_query($sql);
if(mysql_query($sql)) //判断$sql语句是否执行
{
$num=mysql_num_rows($result); //取得包含id字段记录的行数
echo "一共有".$num."个id"; }思想就是:根据含有ID的记录(数据库里一行内容称为一条记录)条数来确定ID的个数
显示数据库db中表tab上字段user的重复数量的查询语句为:
$sql='select user,count(*) from db.tab group by 1';
用mysql_query、mysql_fetch_array循环就可以显示所有重复值的统计
如果只查user为'xxx'有多少,查询语句为:
$sql="select count(*) from db.tab where user='xxx'";