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

Sentencia IF no me funciona

Estas en el tema de Sentencia IF no me funciona en el foro de Mysql en Foros del Web. Buen dia compañeros del foro. tengo la siguiente consulta en MYSQL 5.5 @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original insert into producto ( nombre ) values ...
  #1 (permalink)  
Antiguo 16/11/2019, 14:47
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 10 años, 11 meses
Puntos: 2
Sentencia IF no me funciona

Buen dia compañeros del foro.
tengo la siguiente consulta en MYSQL 5.5
Código MySQL:
Ver original
  1. insert into producto(nombre) values('jabon');
  2. SET @id_producto:=(select max(id_producto) from producto);
  3. IF @id_producto <=> NULL THEN
  4. insert into presentacion (medida) values (presentacion);
  5. SET @id_presentacion2:=(select MAX(id_presentacion) from presentacion);
  6. insert into lista_precios(id_producto,id_presentacion,precio_unit)values(@id_producto,
  7. @id_presentacion2,precio);
  8. select 'hola';
  9. insert into lista_precios(id_producto,id_presentacion,precio_unit)values(@id_producto,
  10. @id_present,precio);
y sea cual sea la condicion siempre me llega al ELSE, entonces me puse a revisar y me dì cuenta que el error es en
Código MySQL:
Ver original
  1. IF @id_producto <=> NULL THEN
A que se debe?, gracias por sus respuestas.
  #2 (permalink)  
Antiguo 16/11/2019, 16:34
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: Sentencia IF no me funciona

NULL no es un dato, es un estado de indefinición, por lo que no puede ser comparado con nada. COn MySQL sólo puedes hacer la comparación con IS NOT NULL, no con operadores.
Por otro lado, hasta lo que yo recuerdo NO existe la comparación "<=>".
Finalmente, los controles de flujo INF ... THEN ... END IF no pertenecen a las sentencias, sino en todo caso a scripts o stored procedure.
¿En qué contexto estás intentando usar eso?
__________________
¿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 18/11/2019, 20:40
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 10 años, 11 meses
Puntos: 2
Respuesta: Sentencia IF no me funciona

gnzsoloyo, gracias por contestar
Si, perdón, esas sentencias están dentro de un procedure.
Lo que nesecito es buscar si en las tablas ya se encuentran los productos que se reciben por parámetro; si es así, que me devuelvan los IDs respectivos de cada uno, en caso contrario, insertar los debidos parámetros.
Cuando estoy en la consola llamo al siguiente procedimiento dos veces seguidas con los mismos datos, y sí me resulta lo que espero, pero cuando llamo al procedimiento el número de veces equivalente a las filas de una tabla en Java me inserta los datos repetidos en las tablas.
Y es precisamente eso lo que quiero evitar.
Código MySQL:
Ver original
  1. Call productoNuevo('jabon', '125G',3300);

Etiquetas: select, sentencia
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 04:48.