Ver Mensaje Individual
  #8 (permalink)  
Antiguo 08/06/2009, 00:33
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Como puedo hacer éste tipo de Consulta?

Esta sería la consulta, como te dice huesos, tal cual, con todos estos paréntesis que sirven para diferenciar los elementos de la UNION.
Código sql:
Ver original
  1. (SELECT * FROM general WHERE num <= CEIL($xu/10)*10  ORDER BY num DESC LIMIT 10000)
  2. UNION ALL
  3. (SELECT * FROM general WHERE num > CEIL($xu/10)*10 ORDER BY num DESC LIMIT 10000)

McBlink, sólo he dejado de php la variable. No olvides que en este foro no podemos escribir código que no sea SQL, MySQL o cuestiones sobre bases de datos; estoy seguro de que podrás adaptarlo, y si tienes dificultades, pide ayuda luego en el foro PHP.
Pero lo primero es lo primero, como te dice nuestro amigo huesos52, debes probar en consola o con el gestor gráfico que uses esta consulta, poniendo en lugar de la variable $xu el número que sepas que te dará resultados. Yo la probé y salía lo que creo pedías. Observa que he cambiado x por num, porque según dijiste el campo contra el que buscas se llama num. Así mismo deberías saber que cardinalidad tiene ese campo num, es decir, cuantos números distintos tienes, fundamentalmente para rebajar el número del LIMIT al adecuado.
La otra corrección que te ha hecho huesos52 también es correcta. Recuerda que quieres que el el número divisible por 10 que debe aparecer primero es el superior al número que introduces, a $xu, pero en la consulta, al usar ceil y multiplicar por 10, ya te sale ese número, por lo que si quieres que aparezca en la primera selección debes usar ese <= en el primer elemento del UNION ALL y > en el segundo.
Saludos a ambos.