update multiple example delete columns mysql sql sql-update

multiple - update mysql java



ACTUALIZACIÓN condicional en MySql (1)

Estoy intentando actualizar los valores de una tabla, pero necesito agregar algunas condiciones. Encontré la función CASE pero no lo soy si es el mejor método. Aquí hay un ejemplo:

Mi tabla es por ejemplo ''relación''

userid1|userid2|name1|name2

Tengo por ejemplo:

SELECT * FROM realtion WHERE (userid1 = 3 AND userid2 = 4) OR (userid1 = 4 AND userid2 = 3);

Salida:

4|3|bill|jack

y quiero cambiar el nombre del usuario 3 en la relación entre 3 y 4, pero no sé si es el userid1 o el userid2.

Pensé en el caso

UPDATE relation CASE WHEN userid1 = 3 THEN SET name1 = ''jack'' END WHEN userid2 = 3 THEN SET name2 = ''jack'' END WHERE (userid1 = 3 AND userid2 = 4) OR (userid1 = 4 AND userid2 = 3);

¡Pero no funciona! ¿Algunas ideas? Muchas gracias de antemano.


Desafortunadamente, no está muy claro lo que quiere obtener al final, pero aquí es cómo podría usar correctamente el SET condicional en su UPDATE

UPDATE relation SET name1 = CASE WHEN userid1 = 3 THEN ''jack'' ELSE name1 END, name2 = CASE WHEN userid2 = 3 THEN ''jack'' ELSE name2 END WHERE (userid1 = 3 AND userid2 = 4) OR (userid1 = 4 AND userid2 = 3);

Aquí está la demostración de SQLFiddle .