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

CONCAT(campo, 'valor')

Estas en el tema de CONCAT(campo, 'valor') en el foro de Bases de Datos General en Foros del Web. Una página PHP me genera la siguiente instrucción SQL: UPDATE Fitxes SET materials = CONCAT(materials, '1') WHERE id_fitxa=3 En un servidor con una base de ...
  #1 (permalink)  
Antiguo 08/08/2002, 03:04
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 4 meses
Puntos: 17
CONCAT(campo, 'valor')

Una página PHP me genera la siguiente instrucción SQL:
UPDATE Fitxes SET materials = CONCAT(materials, '1') WHERE id_fitxa=3

En un servidor con una base de datos MySQL concreta, me funciona sin problemas tanto si materials está vacio como si ya tiene valores asignados.
En cambio, en otro servidor con otra base de datos MySQL, teóricamente igual al anterior, la instrucción sólo funciona cuando materials ya tenía valores asignados.
He revisado la documentación en <a href='ir.asp?http://www.mysql.com/doc' target='_blank'>http://www.mysql.com/doc...</a> y pone que funciona siempre que no se indiquen valores NULL.
¿Es posible que en el servidor que no funciona tenga configurado MySQL de un modo que considera NULL a todo lo que no tenga valor asignado?
¿Cómo lo podría solucionar?

Joe Tawers,
<a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a>
  #2 (permalink)  
Antiguo 08/08/2002, 09:01
 
Fecha de Ingreso: julio-2002
Mensajes: 219
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: CONCAT(campo, 'valor')

Hola.

Podrías colocar un condicional, sea en ASP, u otro lenguaje que puedas utilizar, y cambias la instrucción dependiendo si es nulo o no.

If (material = null) then
UPDATE Fitxes SET materials = '1' WHERE id_fitxa=3
else
UPDATE Fitxes SET materials = CONCAT(materials, '1') WHERE id_fitxa=3
end if

Si no te sirve, trata conparando con &quot;&quot; enb vez de null.

En otro caso, podrías probar que pasa si en vez de usar concat, haces lo siguiente.

UPDATE Fitxes SET materials = materials &amp; '1' WHERE id_fitxa=3

Eso es lo que se me ocurre, puesto que no conozco nada de PHP.

Suerte
  #3 (permalink)  
Antiguo 08/08/2002, 09:18
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 4 meses
Puntos: 17
Re: CONCAT(campo, 'valor')

Al final lo que pasaba es que si era nulo Lo que hago es rellenar todos los campos con &quot;&quot; al crear un registro nuevo, así la próxima vez que use CONCAT no dará error.
No puedo usar PHP dentro del query porque la idea es usar sólo SQL, que es mucho más veloz.
Gracias de todos modos

Joe Tawers,
<a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a>
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 12:54.