Webeando (con perdón)

Categorías:

Archivos:

<Noviembre 2017
Lu Ma Mi Ju Vi Sa Do
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      


Blogalia

Una de SQL: LIMIT y TOP

Cuando recuperamos información de bases de datos, es habitual que sólo nos interese un número determinado de registros, a menudo los n primeros o los n últimos.

Bien, pues el SQL para hacer esto difiere ligeramente en MySQL y en MS Access, así que aprovecho para poner aquí otra de esas "notas para recordar":

MySQL

SELECT ... FROM ...
WHERE ...
LIMIT n


MS Access

SELECT TOP n ... FROM ...
WHERE ...


Esto devuelve los n primeros resultados de la búsqueda, así que si lo que nos interesa son los n últimos, habrá que jugar con las claúsulas ORDER BY

Por cierto, un truco interesante es usar siempre LIMIT 1 o TOP 1 cuando queremos obtener sólo un registro, incluso cuando usamos un identificador único en el WHERE. En muchas ocasiones, esto aumentará la performance de nuestra aplicación.

2006-08-24 18:44 | Categoría: | 5 Comentarios | Enlace

Referencias (TrackBacks)

URL de trackback de esta historia http://webcraft.blogalia.com//trackbacks/42417

Comentarios

1
De: s3rrot Fecha: 2006-09-24 01:02

Esa es una de las cosas que me trajo un poco de cabeza cuando me pasé de SQL Server a MySQL. Hasta que lo "descubrí". :D



2
De: Netito Fecha: 2006-09-25 18:40

Sí, son estos "pequeños detallitos sin importancia" los que les dan salsa a la vida.... ;)



3
De: Ciomar Fecha: 2007-05-29 07:37

SQL server no permite paginado. Mysql server lo permite agregando al finalde un select (por ejemplo) la clausula "limit". Por ejemplo para ver cinco registros a partir del registro 10:
select * from tabla limit 10,5
En ms sql server no existe "limit" unicamente un instrucción denominada "top", haciédo que la vida de los programadores sea un verdadero embole...



4
De: Netito Fecha: 2007-06-02 13:29

Ciomar, gracias por el comentario. No conocía esa posibilidad del LIMIT, y me dá que le voy a sacar bastante partido...



5
De: German Fecha: 2007-12-02 20:10

germanachar(at)yahoo(dot)com(dot)ar

Como hago una consulta igual a limit pero que sea SQL92 estandar. Porque me obligan a usar ese estandar y limit no lo es, la unica pista que me dieron es que hay que usar subconsultas. Al menos que alguien me explique como lograr presentar el resultado de una consulta con numero de tupla a un lado; asi puedo usar el numero generado para hacer una especie de limit estandar. Sin utilizar vistas ni tablas auxiliares. Desde ya muy agradecido.



Nombre
Correo-e
URL
Dirección IP: 54.162.139.105 (8476230961)
Comentario
¿Cuánto es: mil + uno?

© 2004 - 2005 Netito
Powered by Blogalia