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

¿Como usar la cantidad de resultados de la primera unión en el límite de la segunda?

Estas en el tema de ¿Como usar la cantidad de resultados de la primera unión en el límite de la segunda? en el foro de Mysql en Foros del Web. Bueno, tengo lo siguiente: Código: (SELECT * FROM tabla1 WHERE algo = 1) UNION (SELECT * FROM tabla1 WHERE algo = 0 LIMIT convertir_a_unsigned(5-[Cantidad de ...
  #1 (permalink)  
Antiguo 26/03/2011, 12:13
 
Fecha de Ingreso: mayo-2008
Ubicación: En la guarida del mal, tratando de conquistar el mundo
Mensajes: 174
Antigüedad: 16 años, 5 meses
Puntos: 2
Pregunta ¿Como usar la cantidad de resultados de la primera unión en el límite de la segunda?

Bueno, tengo lo siguiente:

Código:
(SELECT * FROM tabla1 WHERE algo = 1)
UNION
(SELECT * FROM tabla1 WHERE algo = 0 LIMIT convertir_a_unsigned(5-[Cantidad de resultados de la primera query]))
;
Ya probé con una subquery con COUNT(*), pero LIMIT no me acepta nada más que un número plano, no puedo usar ninguna función :S. Además preferiría utilizar el resultado de la primera query, ya que me ahorro hacerla denuevo :P

¿Alguna idea de como lograr esto? :S
  #2 (permalink)  
Antiguo 26/03/2011, 12:48
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: ¿Como usar la cantidad de resultados de la primera unión en el límite de l

Vamos por parte: En MySQL, LIMIT sólo admite como parámetros números enteros. no admite variables o funciones, por lo que no se puede usar ninguna forma de operación que provenga de otra consulta, procedimiento o función. Tiene que ser forzosamente un valor entero real.
Por otra parte, tu problema parece darse en un escenario específico, por lo que sería bueno que para ayudarte nos explicases un poco el sentido de querer que dos conjuntos de datos se den como UNION, pero que el segundo dependa de la cantidad del primero.
¿Podrías explicarlo?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: limit, union
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 02:16.