作者bobju (宝贝猪)
看板Programming
标题Re: [问题] sql语法,count同时取得资料该如何做?
时间Mon Oct 27 23:06:51 2008
假设每页呈现20笔记录:
第一页:
select * from assets limit 0,20; // 0是记录的起始序号(0-base),20代表要几笔.
第二页:
select * from assets limit 20,20;
第三页:
select * from assets limit 40,20;
依此类推. 假设在程式中用PageNo变数控制页码(1-base), 用PageSize变数控制页
的呈现笔数的话:
ex: (PHP case:)
$sql=sprintf("select * from assets limit %d,%d",($PageNo-1)*20,$PageSize);
$rows=mysql_query($sql,$link);
至於总页数则需另以一道sql描述来查:
$sql="select count(*) as c from assets";
$rows=mysql_query($sql,$link);
$r=mysql_fetch_assoc($rows);
$count=$r['c']; //记录的总笔数
$PageCount=floor(($count-1)/$PageSize)+1; //换算成总页数
※ 引述《aoisama (葵)》之铭言:
: 大家好,我正在开发网页架构的资料库程式
: 采用MySql作为资料库
: 现在我遇到的问题是,我要显示部分的资料,由於资料比数很大,需要作换页的功能
: 我的语法是这样
: SELECT * FROM assets LIMIT 20
: 一次取20笔资料,但我需要知道总列数才能作换页功能,所以我下这样的语法
: SELECT *, COUNT(id) AS cnt FROM assets LIMIT 20
: 但这样出来的结果只有1列...
: 请问各位前辈,正确的语法该怎麽做,要用子查询吗?
: 还是说一定得分两次query才行?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.74.253.140