Comunidad de diseño web y desarrollo en internet online

Como actualizar campo con una consulta con un valor u otro

Citar            
MensajeEscrito el 06 Oct 2017 02:08 pm
Hola amigos, tengo una duda a ver si algun me echa un cable

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

Por giskard

110 de clabLevel



Genero:Masculino  

Programador y diseñador web

firefox
Citar            
MensajeEscrito el 06 Oct 2017 02:48 pm
Bueno me auto respondo

Código MySQL :

"UPDATE usuarios SET referencias = CONCAT(referencias, ',', '4000') WHERE  id='2'";

Por giskard

110 de clabLevel



Genero:Masculino  

Programador y diseñador web

firefox
Citar            
MensajeEscrito el 03 Feb 2018 06:14 pm

giskard escribió:

Bueno me auto respondo

Código MySQL :

"UPDATE usuarios SET referencias = CONCAT(referencias, ',', '4000') WHERE  id='2'";


i want to like that when someone want to change their name how to solve this problem
Free Netflix Accounts

Por mk123

0 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.