Re: [問題] sql語法,count同時取得資料該如何做?

看板Programming作者 (寶貝豬)時間17年前 (2008/10/27 23:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
假設每頁呈現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
文章代碼(AID): #191TaEKP (Programming)
討論串 (同標題文章)
文章代碼(AID): #191TaEKP (Programming)