Foros del Web » Programando para Internet » PHP »

1er y ultimo registro de una consulta

Estas en el tema de 1er y ultimo registro de una consulta en el foro de PHP en Foros del Web. Necesito obtener solamente el 1er y el ultimo registro de una consulta. Alguien sabe como?...
  #1 (permalink)  
Antiguo 05/05/2003, 10:05
 
Fecha de Ingreso: marzo-2003
Mensajes: 27
Antigüedad: 21 años
Puntos: 0
1er y ultimo registro de una consulta

Necesito obtener solamente el 1er y el ultimo registro de una consulta. Alguien sabe como?
  #2 (permalink)  
Antiguo 05/05/2003, 10:15
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 2 meses
Puntos: 17
A mi sólo se me ocurre hacer 2 consultas. La primera para recuperar los ID del primer y el último registro y la segunda para obtener los datos de los 2 registros recuperados en la consulta 1.

Código PHP:
$primera mysql_query("SELECT 1,id,max(id) as maximo,min(id) as minimo FROM tabla GROUP BY 1");
$segunda mysql_query("SELECT * FROM tabla WHERE id IN (".mysql_result($primera0"maximo").",".mysql_result($primera0"minimo").")"); 
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 05/05/2003, 10:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Necestitas solo esos dos registros ? (primero y último) .. o tienes ya hecha una consulta hecha que arroja X registros y necesitas el primero y último?

Te lo comento por:

Con mysql_result() y mysql_num_rows() podrias obtener cualquier registro de una consulta tipo:

SELECT * FROM tabla

que te arroje varios registros ...

Pero si solo quieres el primer y último registro .. Por optimización .. te vendría mejor hacer dos consultas que usen ORDEN BY y LIMIT

Seleccionar sólo el primer registro de esa tabla ..
SELECT * FROM tabla ORDEN BY id ASC LIMIT 1

Seleccionar sólo el último registro de esa tabla ..
SELECT * FROM tabla ORDEN BY id DESC LIMIT 1

Donde ese campo ID es un campo auto-incremental (autonumérico)

Un saludo,

pd: .. Si explicas mejor que tipo de consulta o que estas haciendo se te podría orientar mejor ..
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 05/05/2003, 11:46
 
Fecha de Ingreso: marzo-2003
Mensajes: 27
Antigüedad: 21 años
Puntos: 0
ya tengo una consulta hecha que me da una cantidad x de registros pero yo solo voy a necesitar el 1ero y el ultimo
  #5 (permalink)  
Antiguo 05/05/2003, 11:50
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 2 meses
Puntos: 17
Entonces usa mysql_data_seek().
0 es el primero y mysql_num_rows()-1 el último.
__________________
M a l d i t o F r i k i
  #6 (permalink)  
Antiguo 05/05/2003, 16:11
 
Fecha de Ingreso: marzo-2003
Mensajes: 27
Antigüedad: 21 años
Puntos: 0
gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:54.