Tengo una tabla usuarios con dos columnas con nombre id y referencias
Código :
+----------+------------------+ | id | referencias | +---------+------------------+ | 1 | | | 2 | 1001 | | 3 | 22,3212,464 | | 4 | 1978,6000 | | 5 | | +---------+-------------------+
Lo que quiero es que en una sola consulta agregar un valor al ya existente del usuario con id que yo elija pero el valor a insertar depende del valor ya existente.
Es decir supongamos que queremos añadir la referencia 4000 al usuario con id 2 a parte de la que ya tiene.
Primero tengo que comprobar si ese usuario ya tiene alguna referencia, si la tiene entonces le añado la nueva referencia con una coma tal que así 1001,4000 pero si resultase que el usuario no tiene ninguna referencia de antemano, es decir que el contenido referencia esta vacio, entonces añadimos la nueva referencia sin coma tal que así 4000
Me mirado la sentencia CASE junto con JOIN pero no acabo de enterarme
Código MySQL :
UPDATE usuarios M1 INNER JOIN ( SELECT referencias CASE referencias WHEN '' THEN '4000' WHEN !='' THEN referencia+',4000' END referencias FROM usuarios ) M2 ON M1.referencias = M2.referencias SET M1.referencias = M2.referencias WHERE id='2';
Hay alguna manera de hacer lo que quiero en una sola consulta o por narices tengo que realizar dos consultas un select para ver el contenido del campo y luego un update?
Un saludo