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

Cursor sobre un resultado y devolver otro resultado

Estas en el tema de Cursor sobre un resultado y devolver otro resultado en el foro de Mysql en Foros del Web. Voy a poner un ejemplo muy simple y sin utlidad aparente para plantear mi duda, imagnemos que tengo dos consultas una selecicona los usuarios con ...
  #1 (permalink)  
Antiguo 11/09/2013, 08:59
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años
Puntos: 1
Cursor sobre un resultado y devolver otro resultado

Voy a poner un ejemplo muy simple y sin utlidad aparente para plantear mi duda,
imagnemos que tengo dos consultas una selecicona los usuarios con el apellido garcia y otra los que son de madrid, y quiero obtener por medio de un cursor los aquellos que sean de madrid y se apelliden garcia.
Consultas por ejmplo:
Código MySQL:
Ver original
  1. res=select * from usuario where apellido='garcia'
  2.  
  3. select * from res where ciudad='madrid'

Seria posible lanzar la primera cnsulta y x cada uno de los resultado esjecutar la segunda de tal manera que si coincide lo guardemos en una variable , y al terminar el bucle devolver el resultado de la query???

Gracias!
  #2 (permalink)  
Antiguo 11/09/2013, 09:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cursor sobre un resultado y devolver otro resultado

En un stored procedure, si.
No existen cursores en una consulta simple en MySQL, y tampoco existe un tipo de dato CURSOR accesible por las librerías de acceso a MySQL en los diferentes lenguajes de programación.
Hay recursos como ese que no son universales en todos los DBMS.
Fuera de eso, se puede perfectamente hacer eso, pero ¿por qué no lo haces simplemente en una sola consulta?
Se podría...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/09/2013, 09:16
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años
Puntos: 1
Respuesta: Cursor sobre un resultado y devolver otro resultado

obviamente el ejemplo es absurdo pero es para evitar hacer una consulta y sobre el resultado recorrer cada fila por php preguntando por su ciudad.
Simplemente porque pense que era mas lento esto que hacerlo con un cursor...


PD : no se puede hacer solo una consulta por razones que no vienen al caso.

Que opinas?
Gracias!
  #4 (permalink)  
Antiguo 11/09/2013, 09:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cursor sobre un resultado y devolver otro resultado

Cita:
Que opinas?
Que sin conocer detalles es difícil aconsejarte.
Cita:
es para evitar hacer una consulta y sobre el resultado recorrer cada fila por php preguntando por su ciudad.
Si en una consulta obtienes las ciudades, y en la otra las personas... sig sin entender por qué no haces un JOIN para obtener las dos cosas en una misma consutla.

Cita:
Simplemente porque pense que era mas lento esto que hacerlo con un cursor...
Como ya te dije, no puedes manejar cursores en una consulta. Eso no existe en MySQL.
Y de todos modos sólo tiene sentido si vas a realizar acciones iterativas. En MySQL lo que quieres hacer se hace más simple por medio de tablas de tipo temporary.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 11/09/2013, 09:27
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años
Puntos: 1
Respuesta: Cursor sobre un resultado y devolver otro resultado

Todo esto es referente a este tema: http://www.forosdelweb.com/f86/count...-join-1072994/ que es de un compañero.

Por es no podemos hacer solo una consulta, asi que claro nos vemos obligados a hacer una consulta y sobre su resultado usar php para comprobar si ademas cumple otras condiciones, y la performance de esto nos da miedo puesto que iwal hablamos de que la consulta devulve 10 15 o 20 mil registros y claro si tenemos que iterar por cada uno de ellos en php pues la performance nos parece que va ser horrorosa...

Etiquetas: cursor, devolver, resultado, select
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 07:47.