實現(xiàn)上面sql查詢結(jié)果的記錄總數(shù)
專注于為中小企業(yè)提供網(wǎng)站制作、網(wǎng)站設(shè)計服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)鳳凰免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
$sql = select count(C.`cid`) as `c` from (select * from `ctable` group by pid) as C left join `ptable` as P on P.`pid` = C.`pid`;
詳解,此語句用到了sql子查詢,先使用子查詢對ctable進(jìn)行分組查詢,然后對分組后的結(jié)果集進(jìn)行統(tǒng)計.
$tab=100; 每個顯示多少
$total=一共多少。(select cout(*) from xx);就可以
$page=ceil($total/$tab)需要幾頁,比如一共10個,每頁3個就是10/3=3.....1,所以ceil向上取整10/3=4頁
$nowPage=0;
然后select * from xx limit $nowPage*$tab,$tab;就可以取出相應(yīng)的了
第一個 就是0,0*100然后取100條,就是1-100;
然后1*100,再取100條,就是 101-200;
分組查詢原理都是SQL的分組查詢,THINKPHP中只是用到他自己的一些自定義的方法!比如
join()、group()、having()方法等,實際對應(yīng)的也是SQL里的這些關(guān)鍵字!
例如本次需求是要按照cid進(jìn)行分組,按照通常的做法是 SELECT * FROM 表名 GROUP BY
cid,這樣就能按照cid進(jìn)行分組篩選!然后使用THINKPHP的時候則使用 M('表名')-group('cid')-select();
實際生成的語句和原始SQL代碼是一樣的。
join通常有下面幾種類型,不同類型的join操作會影響返回的數(shù)據(jù)結(jié)果。
INNER JOIN: 等同于 JOIN(默認(rèn)的JOIN類型),如果表中有至少一個匹配,則返回行
LEFT JOIN: 即使右表中沒有匹配,也從左表返回所有的行
RIGHT JOIN: 即使左表中沒有匹配,也從右表返回所有的行
FULL JOIN: 只要其中一個表中存在匹配,就返回行