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

If en sentencia sql

Estas en el tema de If en sentencia sql en el foro de Mysql en Foros del Web. Hola tengo una tabla que tiene id,nombre, apellido, email, lo que deseo es actualizar el campo en caso de que este vacio, habia pensado en ...
  #1 (permalink)  
Antiguo 17/06/2011, 09:18
 
Fecha de Ingreso: febrero-2009
Mensajes: 151
Antigüedad: 15 años, 2 meses
Puntos: 1
If en sentencia sql

Hola tengo una tabla que tiene id,nombre, apellido, email, lo que deseo es actualizar el campo en caso de que este vacio, habia pensado en usar if, pero nose si esto es posible, como se hace ni si es la forma correcta, nose al estilo de:


Código PHP:
UPDATE tabla set if(nombre=''){nombre='$nombre'},if(apellido=''){apellido='$apellido'},if(email=''){email='$email'where id='$id' 

je, nose si estoy inventando mi leguaje o esta correcto. Gracias
  #2 (permalink)  
Antiguo 17/06/2011, 09:35
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: If en sentencia sql

Si se puede.

Pero la sintaxis no es correcta.

sería:

IF(campo=algo,'si cumple condicion','si no cumple condicion')
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 17/06/2011, 10:54
 
Fecha de Ingreso: febrero-2009
Mensajes: 151
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: If en sentencia sql

Cita:
Iniciado por huesos52 Ver Mensaje
Si se puede.

Pero la sintaxis no es correcta.

sería:

IF(campo=algo,'si cumple condicion','si no cumple condicion')
Hola!, gracias por aydarme!!, te comento que he probado lo siguiente pero no me funciona, donde estara mi error?:

Código PHP:
UPDATE socios set if(nombre='',nombre='$nombre'), if(apellido='',apellido='$apellido'), if(email='',email='$email'where id='1' 
Gracias!!
  #4 (permalink)  
Antiguo 17/06/2011, 11:00
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: If en sentencia sql

Código MySQL:
Ver original
  1. UPDATE socios set nombre=if(nombre='',nombre='$nombre'), apellido=if(apellido='',apellido='$apellido'), email=if(email='',email='$email') where id='1'
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 17/06/2011, 11:19
 
Fecha de Ingreso: febrero-2009
Mensajes: 151
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: If en sentencia sql

Cita:
Iniciado por huesos52 Ver Mensaje
Código MySQL:
Ver original
  1. UPDATE socios set nombre=if(nombre='',nombre='$nombre'), apellido=if(apellido='',apellido='$apellido'), email=if(email='',email='$email') where id='1'
te comento que he probado como me comentas y no me funciona, incluso he provado la sentencia desde mysql con 1 solo campo y me da el siguiente error:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') WHERE id='1'' at line 1

la cosnulta que probe es

Código PHP:
UPDATE socios SET nombre=if(nombre='',nombre='Manuel'WHERE id='1' 
  #6 (permalink)  
Antiguo 17/06/2011, 12:07
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: If en sentencia sql

no es así

es:
Código MySQL:
Ver original
  1. UPDATE socios SET nombre=if(nombre='','Manuel','carlos') WHERE id='1'

Si cumple la condición, pondrá manuel de lo contrario pondrá carlos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 17/06/2011, 12:11
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: If en sentencia sql

Hola dunga007:

Con el permiso del compañero huesos52, la sentencia IF, tal como la estás tratando de utilizar necesita de tres parámetros (la condición, lo que se tiene que hacer cuando la condición es verdadera y lo que se tiene que hacer cuando la condición es falsa).

En tu post no especificas qué debe suceder cuando nombre es diferente de '', pero sería más o menos así:

Código:
UPDATE socios 
SET nombre=if(nombre='',nombre='Manuel', nombre)
WHERE id='1'
Con palabras sería más o menos así, para el registro con id='1', si el nombre es igual a '' entonces ponle Manuel, pero si es cualquier otra cosa deja el mismo contenido.

También podrías hacerlo con un CASE-WHEN, si no le pones la parte del ELSE le asignaría un null, sería más o menos así

Sería más o menos así:

Código:
UPDATE socios 
SET nombre=CASE WHEN nombre='' THEN 'Manuel' ELSE nombre END[/B]
WHERE id='1'
Saludos
Leo.

EDITADO: veo que el compañero huesos52 ya había contestado la pregunta mientras yo redactaba mi respuesta, pero le faltó aclarar por qué del error.


Saludos
  #8 (permalink)  
Antiguo 17/06/2011, 12:46
 
Fecha de Ingreso: febrero-2009
Mensajes: 151
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: If en sentencia sql

Cita:
Iniciado por huesos52 Ver Mensaje
no es así

es:
Código MySQL:
Ver original
  1. UPDATE socios SET nombre=if(nombre='','Manuel','carlos') WHERE id='1'

Si cumple la condición, pondrá manuel de lo contrario pondrá carlos
buenisimo huesos!! ahi anda perfecto, ahora te hago una pregunta, como tendria que poner si lo que quiero es que si no cumple la condicion no haga nada, es decir en el ejemplo, si nombre no esta vacio en lugar de que ponga Carlos no haga nada. Gracias!
  #9 (permalink)  
Antiguo 17/06/2011, 12:50
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: If en sentencia sql

Como te dijo leonardo en el post anterior.
Código MySQL:
Ver original
  1. UPDATE socios SET nombre=if(nombre='','Manuel',nombre) WHERE id='1'
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #10 (permalink)  
Antiguo 17/06/2011, 13:07
 
Fecha de Ingreso: febrero-2009
Mensajes: 151
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: If en sentencia sql

Cita:
Iniciado por huesos52 Ver Mensaje
Como te dijo leonardo en el post anterior.
Código MySQL:
Ver original
  1. UPDATE socios SET nombre=if(nombre='','Manuel',nombre) WHERE id='1'

Espectacula!!, gracias a los 2 huesos y leonardo, genios!, pasa que mientras escribia mi post se ve que leonardo posteo, pero ya ta! ahora a terminar el proyecto. Saludos!!!

Etiquetas: sentencia, sql
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 22:40.