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

Guardar resultado de consulta en un campo

Estas en el tema de Guardar resultado de consulta en un campo en el foro de Mysql en Foros del Web. Hola, Generalmente lo hago con php, pero me gustaría saber si puedo hacerlo con una sentencia SQL. Tras un error, necesito actualizar el campo 'ncalls' ...
  #1 (permalink)  
Antiguo 25/11/2010, 06:49
 
Fecha de Ingreso: abril-2010
Mensajes: 6
Antigüedad: 14 años
Puntos: 0
Guardar resultado de consulta en un campo

Hola,

Generalmente lo hago con php, pero me gustaría saber si puedo hacerlo con una sentencia SQL.

Tras un error, necesito actualizar el campo 'ncalls' en la tabla 'clients' con el resultado de una consulta generada en otra tabla 'cdrin'.

Tengo claro el SQL para actualizar una fila, pero quiero actualizar todas las filas de la tabla 'clients' en una consulta:

UPDATE clients SET ncalls= (SELECT count(*) FROM `cdrin` WHERE `phone` = '34666555000') WHERE `number` = '34666555000'

Evidentemente el campo común entre las dos tablas es 'phone' y 'number'.

Con PHP haría un Update por cada valor de la consulta:

SELECT phone, COUNT(*) FROM cdrin GROUP BY phone
  #2 (permalink)  
Antiguo 25/11/2010, 13:50
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Guardar resultado de consulta en un campo

SAludos

Cita:
Tengo claro el SQL para actualizar una fila, pero quiero actualizar todas las filas de la tabla 'clients' en una consulta:
Si lo actualizas con una sola consulta el campo ncalls te quedara con el mismo valor eso es lo que necesitas? mmmm
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 26/11/2010, 02:15
 
Fecha de Ingreso: abril-2010
Mensajes: 6
Antigüedad: 14 años
Puntos: 0
Respuesta: Guardar resultado de consulta en un campo

Parece que no me he explicado bien, el SQL de actualizar una fila lo he puesto como ejemplo de lo que quiero conseguir, pero cada fila tendrá su valor.

Básicamente tengo una tabla de clientes 'clients', uno de sus campos es el número de teléfono 'number' mientras que el campo 'ncalls' contabiliza el número de llamadas que hemos recibido del cliente, los datos contenidos en 'ncalls' se han corrompido y tengo que recalcularlos.

Para recalcularlos tengo que utilizar la tabla 'cdrin' y contar cuantas llamadas 'COUNT(*)' ha efectuado un determinado número de teléfono 'phone'.

El resultado obtenido en la consulta de la tabla 'cdrin' tengo que guardarlo en el campo 'ncalls' de la tabla 'clients'.

Me gustaría saber si esta operación la puedo construir en mysql, para no tener que recurrir a ningún lenguaje como php.
  #4 (permalink)  
Antiguo 26/11/2010, 07:31
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Guardar resultado de consulta en un campo

Saludos

Pienso que te queda mas fácil realizarlo directamente con php el código es muy corto para la operación que necesitas hacer, ya que con mysql podrías realizar un store procedure y manejar un bucle while, lo que no he hecho y la verdad no se si se pueda es recorrer los valores de una consulta, pensaría que no!.

Hasta Pronto!
__________________
:.:Nano.:: @nano_hard - Retornando al foro

Etiquetas: resultados, campos
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 09:45.