Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/05/2011, 03:54
nami_eiku
 
Fecha de Ingreso: noviembre-2008
Mensajes: 5
Antigüedad: 15 años, 5 meses
Puntos: 0
Obtener posición de un registro en los resultados de una búsqueda

Veamos, estoy desarrollando una aplicación web, para la cual necesito mostrar una lista paginada de resultados, y el detalle del registro seleccionado.
Para ello tengo una SQL limitada al nº de registros que quiero mostrar por página, ordenada por parámetros arbitrarios:
Código MySQL:
Ver original
  1. SELECT id, nombre, país, provincia FROM empresas ORDER BY parametro1, prametro2 LIMIT(registro_inicial, registro_por_pagina)
Por otro lado tengo el registro que deseo mostrar:
Código MySQL:
Ver original
  1. SELECT * FROM empresas WHERE id=registro_seleccionado

Necesito calcular, en qué posición de la lista de la búsqueda anterior (de acuerdo a los parámetros introducidos por el usuario para ordenar los resultados) se halla el registro seleccionado, para poder determinar qué página debo mostrar y resaltar dicho registro.

Y todo ello con la menor cantidad de peticiones SQL posibles
Tampoco me sirve hacer la select del listado completo e ir recorriendo los registros uno a uno hasta dar con el indicado llevando un contador, porque en esa tabla puede haber miles de registros, y la razón de que estemos paginándola es para agilizar la consulta.

Gracias de antemano con toda las sugerencias que me podáis ofrecer