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

[SOLUCIONADO] Como grabar literalmente un string con 0 a la izquierda?

Estas en el tema de Como grabar literalmente un string con 0 a la izquierda? en el foro de Mysql en Foros del Web. Buenas, Tengo una tabla con el campo Referencia, que es un varchar(5). Resulta que al grabar información en este campo, si hay un 0 a ...
  #1 (permalink)  
Antiguo 07/10/2014, 01:15
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Como grabar literalmente un string con 0 a la izquierda?

Buenas,
Tengo una tabla con el campo Referencia, que es un varchar(5).

Resulta que al grabar información en este campo, si hay un 0 a la izquierda lo borra. Es una cadena y quiero que mantenga los 5 dígitos, es decir,

Si ejecuto:

Código MySQL:
Ver original
  1. UPDATE t_destacats SET referencia='01234' WHERE id_cat=3

Quiero que se grabe 01234 y no 1234. No entiendo, porqué siendo un string, se elimina el 0. Cómo debo grabarlo o tengo que hacer alguna modificación en el tipo de campo?

Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #2 (permalink)  
Antiguo 07/10/2014, 01:54
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 2 meses
Puntos: 574
Respuesta: Como grabar literalmente un string con 0 a la izquierda?

Estas ejecutando la query tal cual nos la muestras o el valor llega en una variable de algún lenguaje de programación externa?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 07/10/2014, 05:39
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Como grabar literalmente un string con 0 a la izquierda?

Buenas quimfv,

Aquí está el código exacto:
Código MySQL:
Ver original
  1. UPDATE t_destacats SET referencia=".$_POST[$camp]."
  2. WHERE id_cat=".$id_cat." AND ordre=".$i

Cita:
Editado: Código de programación no permitido en foros de Bases de DAtos. Leer las normas del foro, por favor.
El valor de $_POST[$camp] = 01234 pero se graba 1234

Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no

Última edición por gnzsoloyo; 07/10/2014 a las 05:46
  #4 (permalink)  
Antiguo 07/10/2014, 05:52
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, 5 meses
Puntos: 2658
Respuesta: Como grabar literalmente un string con 0 a la izquierda?

Lo que tienes es un error de entendimiento de la diferencia entre lenguajes.
PHP no es MySQL, y MySQL no es PHP. Esto implica que MySQL no entiende variables de PHP, y en consecuencia no sabe que esa variable es un string. SQL tiene sus propias reglas que deben ser respetadas cuando se crea dinámicamnete una query.
Lo que debes verificar es siempre cuál es la sentencia SQL que finalmente recibe MySQL, porque alli descansa todo.
Si tu variable contiene "01234", pero no haces que ese valor quede como cadena de texto en MySQL, lo que recibirá será:
Código MySQL:
Ver original
  1. UPDATE t_destacats SET referencia=01234
  2. WHERE id_cat=...
Como puedes ver, el valor aparece completo, pero no como cadena de texto, ya que no está contenido entre apóstrofos. Por esa razón MySQL lo interpreta como un número que debe ser convertido implícitamente en cadena de texto, pero por empezar es un número, y al tomarlo como tal el cero a la izquierda desaparece.
Recién despues hace la conversión.
¿Se entiende?

Lo que debes hacer es crear la quyery de modo que el valor quee entre apostrofos:
Código MySQL:
Ver original
  1. UPDATE t_destacats SET referencia='01234'
  2. WHERE id_cat=...
¿Ves la diferencia?

Posdata: Lo siento pero si lees las normas del foro de BBDD que estan en la vista frontal de cada foro subforo de BBDD, verás que no se permite código de programacion de ningún tipo.
Sólo trabajamos con SQL en este foro.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 07/10/2014 a las 06:21
  #5 (permalink)  
Antiguo 07/10/2014, 06:12
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Como grabar literalmente un string con 0 a la izquierda?

Muchas gracias por la respuesta y perdón por haberme saltado las normas del foro
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #6 (permalink)  
Antiguo 07/10/2014, 06:21
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, 5 meses
Puntos: 2658
Respuesta: Como grabar literalmente un string con 0 a la izquierda?



__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, string, tabla
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 02:51.