MySQL - TOP 10 DENTRO DE UNA TABLA

   
Vista:

TOP 10 DENTRO DE UNA TABLA

Publicado por Jose Manuel (3 intervenciones) el 09/01/2014 00:34:41
A ver si me explico bien con lo que necesito...
Tengo una tabla de clientes en los cuales voy a tener un top 10, se que campos pertenecen al top 10 si un campo contiene algo, si ese campo está vacío no pertenece al top 10.

Ahora bien, mi consulta es que quiero mostrar todos los datos de esta tabla de la siguiente forma ordenado descendiente por un campo si el cliente pertenece al top 10 y si no pertenece al top 10 descendiente por el identificador.

De tal forma que la consulta muestre los top 10 de forma descendiente y luego el resto ordenador descendiente también por el identificador.

Muchas gracias de antemano ;)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

TOP 10 DENTRO DE UNA TABLA

Publicado por xve (898 intervenciones) el 09/01/2014 10:09:49
Hola Jose, la manera que se me ocurre de primeras, es juntar dos consultas con union all... algo así:

1
2
3
(SELECT * FROM tabla WHERE campo<>"" ORDER BY campo DESC LIMIT 10)
UNION ALL
(SELECT * FROM tabla WHERE campo="" ORDER BY campo ASC)

Te puede servir?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

TOP 10 DENTRO DE UNA TABLA

Publicado por Jose Manuel (3 intervenciones) el 09/01/2014 15:23:48
Jopé! pues muchisimas gracias, es justo lo que buscaba!
probé varias cosas y no caí en la opción "union all"
gracias! :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

TOP 10 DENTRO DE UNA TABLA

Publicado por Jose Manuel (3 intervenciones) el 10/01/2014 00:51:18
Una consulta más...

Resulta que la aplicación es en PHP y tengo una paginación en la que voy mostrando esa consulta pero en grupos de 5
El programa funciona correctamente mientras en el top haya 5 o menos, pero una vez supera los 5 ya tendría que meter algún limite a la primera consulta, que no fuera LIMIT 10, pero entonces ya no me funciona la segunda consulta correctamente, no se si me explico.

Si hubiera 6 en el top, en la primera página puedo hacer una consulta simple en la que me liste los 5 primeros del top, pero una vez que estoy en la página 2 en adelante no se me ocurre que es lo que tengo que añadirle a la consulta para que no me muestre los ya listados en la lista anterior y que empiece por los que quedan en el top.

Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar