<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sentido Web &#187; mysql paginacion</title>
	<atom:link href="http://sentidoweb.com/tag/mysql-paginacion/feed" rel="self" type="application/rss+xml" />
	<link>http://sentidoweb.com</link>
	<description>Desarrollo web, HTML, CSS, Javascript, PHP, MySQL</description>
	<lastBuildDate>Mon, 16 Jan 2012 10:16:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Consultas SQL para paginación</title>
		<link>http://sentidoweb.com/2006/03/23/consultas-sql-para-paginacion.php</link>
		<comments>http://sentidoweb.com/2006/03/23/consultas-sql-para-paginacion.php#comments</comments>
		<pubDate>Fri, 24 Mar 2006 01:49:01 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[mysql paginacion]]></category>
		<category><![CDATA[oracle paginacion]]></category>
		<category><![CDATA[sql paginacion]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2006/03/23/consultas-sql-para-paginacion.php</guid>
		<description><![CDATA[Cuando tenemos que mostrar una serie numerosa de resultados en nuestra página web, es necesario mostrar estos de poco en poco. Para ello se utiliza la paginación, dividir los resultados en grupos y mostrarlos en distintas páginas. Una parte fundamental es la consulta a la BD, la cual tiene que ser eficiente. Un error que [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando tenemos que mostrar una serie numerosa de resultados en nuestra página web, es necesario mostrar estos de poco en poco. Para ello se utiliza la paginación, dividir los resultados en grupos y mostrarlos en distintas páginas. Una parte fundamental es la consulta a la BD, la cual tiene que ser eficiente.</p>

<span id="more-36"></span>
<p>Un error que he visto con frecuencia en los proyectos que he participado, ha sido el de obtener todos los resultados y luego leer los que nos interesan, por ejemplo, si queremos los resultados de 21 al 30, empezamos a leer todos, se ignoran los 20 primeros y luego se guardan los 10 siguientes. Esto hace que en la BD recupere todos los datos y los envie, lo cual puede ser muy costoso. Por ello es necesario obtener de la BD solo los datos necesarios. Y tampoco, por favor, recupereís todos los datos y los guardéis en sesión para recuperarlos según necesitéis, porque los datos se modifican y la consulta puede quedar obsoleta.</p>
<p>En el caso de Mysql se usa la instruccion <a href="http://dev.mysql.com/doc/refman/5.0/en/select.html">LIMIT</a> (<em>LIMIT posicion, desplazamiento</em>):</p>
<pre><code>SELECT *
FROM tabla
WHERE clausulas
LIMIT posicion, desplazamiento</code></pre>
<p>Si la base de datos es Oracle, la instrucción LIMIT no existe, por lo que tendremos que simularlo mediante una subconsulta.</p>
<pre><code>SELECT a, c, b, ...
FROM (SELECT ROWNUM fila, a, b, c, ...
FROM tabla
WHERE clausulas)
WHERE fila &gt;= posicion AND
fila &lt; posicion + desplazamiento</code></pre>
<p>En este caso, lo que hacemos es obtener todos los datos, añadirle el número de fila, para introducirlo en una subconsulta y luego acceder a las filas según el número de fila.</p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2006/03/23/consultas-sql-para-paginacion.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

