Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ordenar resultados de una búsqueda en una db de mysql

Estas en el tema de Ordenar resultados de una búsqueda en una db de mysql en el foro de Bases de Datos General en Foros del Web. Hola amigos, les envío un saludo cordial Creo que mi pregunta es algo simple, pero soy algo nuevo en MySql así que hay les va: ...
  #1 (permalink)  
Antiguo 05/05/2011, 14:21
 
Fecha de Ingreso: marzo-2009
Mensajes: 61
Antigüedad: 15 años, 8 meses
Puntos: 2
Exclamación Ordenar resultados de una búsqueda en una db de mysql

Hola amigos, les envío un saludo cordial

Creo que mi pregunta es algo simple, pero soy algo nuevo en MySql así que hay les va:

La base de datos tiene más campos pero se los voy a poner un poco más sencillo, para explicarme mejor.

Digamos que tengo una base de datos en MySql con los Campos de:

"TIENDA" y "PRODUCTO"

La TIENDA, digamos que tengo:
"TIENDA 1"
"TIENDA 2"
"TIENDA 3"

y el PRODUCTO (estos productos los tienen las 3 tiendas), digamos que tengo:
"REFRIGERADORES LG"
"REFRIGERADORES WHIRLPOOL"
"REFRIGERADORES GE"
"MICROONDAS LG"
"MICROONDAS WHIRLPOOL"
"MICROONDAS GE"

Ok, con esos datos hago mi base de datos y hago un buscador, cuando el usuario llega y hace una búsqueda, por ejemplo busca:

"REFRIGERADORES WHIRLPOOL"

Entonces van a aparecer todos los "REFRIGERADORES WHIRLPOOL" de las 3 tiendas, pero digamos que entre todos los resultados de las 3 tiendas juntas, suman 300 resultados, 100 resultados por cada tienda. Y digamos que estoy mostrando mis resultados en 30 páginas de 10 resultados cada una, hasta ahí todo está bien.

Pero..., entonces el detalle donde reside mi problema es que quiero acomodar esos resultados de tal forma que aparezcan "intercalados".

Es decir, hasta este momento, he logrado que los resultados 1 al 100 sean los de la "TIENDA 1" los del "101 al 200" los de la "TIENDA 2" y los del 201 al 300 los de la "TIENDA 3", pero acomodados así no me sirven, yo necesito que desde la página de resultados número 1, el usuario sepa que hay 3 tiendas que tienen "REFRIGERADORES WHIRLPOOL".

Por tanto me sería de gran ayuda "intercalar" los resultados, de tal forma que por ejemplo el resultado No. 1 fuera el de la "TIENDA 1" el resultado No. 2 el de la "TIENDA 2" y el resultado No. 3 el de la "TIENDA 3" al menos esos 3 primeros resultados ordenados de esa forma, para enterar así al usuario de que hay 3 tiendas que contienen "REFRIGERADORES WHIRLPOOL", al menos los 3 primeros resultados, ahora que si es posible "intercalar" todos que mejor...

Espero haberme explicado bien, ya que no se mucho sobre la terminología correcta ya que estoy trabajando en este proyecto de forma personal, les agradeceré mucho su ayuda, doy karma por cada respuesta que me sea de ayuda. Gracias

Saludos!!
  #2 (permalink)  
Antiguo 14/05/2011, 14:10
 
Fecha de Ingreso: marzo-2009
Mensajes: 61
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Ordenar resultados de una búsqueda en una db de mysql

Chale, que mal pedo que no conteste nadie.... si yo he visto que hay mucha gente que sabe mucho de MySQL, si no me expliqué bien pregúntenme no sean gachos, y les pego el código o lo que sea necesario. Gracias
  #3 (permalink)  
Antiguo 14/05/2011, 15:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Ordenar resultados de una búsqueda en una db de mysql

Perdón, pero supongo ha sido que el tema de tu pregunta ni siquiera se puede resolver en la base. Todos los que hemos leído el planteo debemos haber pensado lo mismo, mas o menos.
La cosa es así: No hay forma de consulta que pueda darte una única tabla con intercalaciones entre tres subconsultas distintas. Es decir, lo que quieres hacer no se hace desde la base de datos, sino en la aplicación, creando la tabla en pantalla a partir de tres tablas diferentes.
Para hacerlo en la base se requeriría un stored procedure, en el que terminarías haciendo más o menos lo mismo que en la aplicación, pero con menos recursos.
Finalmente, existe una posibilidad para hacerlo en MySQL, pero no es una forma que puedas llevar a otros DBMS ya que requiere una sintaxis específica de MySQL, por lo que si quieres migrar o copiar la idea a otro, no podrás. Esto sería usando variables de usuario y una sintaxis demasiado compleja.

Mi sugerencia, si quieres hacer esto, resuélvelo en la aplicación. Te vas complicar menos la vida.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 16/05/2011, 22:53
 
Fecha de Ingreso: marzo-2009
Mensajes: 61
Antigüedad: 15 años, 8 meses
Puntos: 2
De acuerdo Respuesta: Ordenar resultados de una búsqueda en una db de mysql

Órale, muchas gracias gnzsoloyo me has abierto los ojos, pues la verdad es que soy muy novato en MySQL, y es que la verdad casi casi lo estoy aprendiendo por mi cuenta, (estoy leyendo "La Biblia de MySQL"), pero si entiendo muy bien lo que me planteas, no creas que no jeje. Gracias

Voy a idear una forma para arreglar esto, con la idea que me diste, le voy a pensar y verás que le encontraré alguna solución, aunque es probable que me vuelvan a ver por aquí solicitando auxilio otra vez, jeje.

Muchas Gracias a todos los que se tomaron el tiempo para leer mi consulta y en especial a gnzsoloyo

Saludos!

Etiquetas: mysql, bases-de-datos
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 14:23.