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

Duda con update

Estas en el tema de Duda con update en el foro de Mysql en Foros del Web. buenas compañeros, tengo una duda, es posible hacer un update de una misma tabla, pero que haga "dos cosas diferentes"? me explico mejor con un ...
  #1 (permalink)  
Antiguo 03/08/2008, 11:58
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Duda con update

buenas compañeros, tengo una duda, es posible hacer un update de una misma tabla, pero que haga "dos cosas diferentes"?
me explico mejor con un ejemplo:
tengo la tabla 'categorias' y quiero poner el campo 'especial' a 0 en todas las categorias menos en una, pero en esa que dejo sin cambiarlo, debo ponerlo a 1

es muy facil hacerlo con dos updates:

UPDATE categorias SET especial=0;
UPDATE categorias SET especial=1 WHERE id=2;

pero, se podria hacer en una sola consulta?
es simple curiosidad solamente :p


gracias!
  #2 (permalink)  
Antiguo 03/08/2008, 12:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Duda con update

Cita:
Iniciado por DooBie Ver Mensaje
buenas compañeros, tengo una duda, es posible hacer un update de una misma tabla, pero que haga "dos cosas diferentes"?
me explico mejor con un ejemplo:
tengo la tabla 'categorias' y quiero poner el campo 'especial' a 0 en todas las categorias menos en una, pero en esa que dejo sin cambiarlo, debo ponerlo a 1

es muy facil hacerlo con dos updates:

UPDATE categorias SET especial=0;
UPDATE categorias SET especial=1 WHERE id=2;

pero, se podria hacer en una sola consulta?
es simple curiosidad solamente :p


gracias!
con esto:
UPDATE categorias SET especial = IF (id=2, 1,0)

Para dos soluciones distintas puedes usar IF; para más tendrás que usar CASE... Por ejemplo,

UPDATE categorias SET especial = CASE id WHEN 2 THEN 1 WHEN 1 THEN 5 ELSE 8 END

Última edición por jurena; 04/08/2008 a las 02:38
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 19:36.