<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[Mysql中limit的用法详解]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Thu, 28 Feb 2008 08:42:08 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	在我们使用查询语句的时候，经常要返回前几条或者中间某几行数据，这个时候怎么办呢？不用担心，mysql已经为我们提供了这样一个功能。<br/>SELECT * FROM table&nbsp;&nbsp;LIMIT [offset,] rows &#124; rows OFFSET offset<br/><br/>LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数，第一个参数指定第一个返回记录行的偏移量，第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)： 为了与 PostgreSQL 兼容，MySQL 也支持句法： LIMIT # OFFSET #。 <br/><br/><br/>mysql> SELECT * FROM table LIMIT 5,10;&nbsp;&nbsp;// 检索记录行 6-15<br/><br/>//为了检索从某一个偏移量到记录集的结束所有的记录行，可以指定第二个参数为 -1： <br/>mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.<br/><br/>//如果只给定一个参数，它表示返回最大的记录行数目： <br/>mysql> SELECT * FROM table LIMIT 5;&nbsp;&nbsp;&nbsp;&nbsp; //检索前 5 个记录行<br/><br/>//换句话说，LIMIT n 等价于 LIMIT 0,n。<br/><br/>LIMIT A B => 从A+1--->A+B<br/>每页10条举例：<br/>Limit&nbsp;&nbsp;0&nbsp;&nbsp;10&nbsp;&nbsp;=>1 ------>10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (第一页)&nbsp;&nbsp;(0+10)/10&nbsp;&nbsp; <br/>Limit&nbsp;&nbsp;10 10 =>11 ---->20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (第二页)&nbsp;&nbsp; (10+10)/10<br/>limit&nbsp;&nbsp;&nbsp;&nbsp;20 10 =>21 ---->30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(第三页)&nbsp;&nbsp;&nbsp;&nbsp;(20+10)/10<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;。。。。。。。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(第N页)<br/><br/>$offset=($this->page-1)*$this->limit;&nbsp;&nbsp;//$offset就是0，10，20<br/><br/><br/>page=(totalpage-1)/onepage's Number;<br/><br/>LIMIT (page-1)*onepage's,NO onepage's Nnumber; <br/><br/><br/>示例：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$pos_start = ($page - 1) * $page_size;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sql = "select * from &#123;$this->table_name&#125; where touid=&#123;$uid&#125; and fromuid=&#123;$frienduid&#125; order by ctime desc limit &#123;$pos_start&#125;, &#123;$page_size&#125;";<br/><br/><br/> <br/><div class="code">&nbsp;&nbsp; public function GetSingleList ($uid, $frienduid, $page, $page_size = 20)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//add by zaifeng 2009-1-13<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$rearr = array();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sql1&nbsp;&nbsp;= &quot;select count(*) as num from &#123;$this-&gt;table_name&#125; where touid=&#123;$uid&#125; and fromuid=&#123;$frienduid&#125; &quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ret&nbsp;&nbsp; = $this-&gt;objPdo-&gt;Select($sql1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($ret)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$total&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= $this-&gt;objPdo-&gt;FetchAll();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$rearr&#91;&#039;count&#039;&#93; = $total&#91;0&#93;&#91;&#039;num&#039;&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//end add<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$pos_start = ($page - 1) * $page_size;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sql = &quot;select * from &#123;$this-&gt;table_name&#125; where touid=&#123;$uid&#125; and fromuid=&#123;$frienduid&#125; order by ctime desc limit &#123;$pos_start&#125;, &#123;$page_size&#125;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result = $this-&gt;objPdo-&gt;Select($sql);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($result)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$rs_array&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = $this-&gt;objPdo-&gt;FetchAll();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$rearr&#91;&#039;record&#039;&#93;&nbsp;&nbsp;&nbsp;&nbsp;= $rs_array;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $rearr;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;</div>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] Mysql中limit的用法详解]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>