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

Campos númericos en mysql

Estas en el tema de Campos númericos en mysql en el foro de Mysql en Foros del Web. Amigos tengo una duda, en sql los campos numéricos no toman en cuanta el 0, es decir, si yo quiero hacer una búsqueda y en ...
  #1 (permalink)  
Antiguo 08/08/2014, 13:36
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 1 mes
Puntos: 0
Campos númericos en mysql

Amigos tengo una duda, en sql los campos numéricos no toman en cuanta el 0, es decir, si yo quiero hacer una búsqueda y en mi campo esta guardado como 1 y si yo le pongo 01 de todos modos lo va a buscar sin problemas y en mysql tengo ese problema, porq en mi sistema que estoy haciendo el usuario va ingresar un número de ID pero algunos comienzan con 01 (asi me pasaron la bd) y en la bd esta como 1 nada mas entonces si lo buscan como 01 no les va arrojar nada :(

Ayuda por favor!!
  #2 (permalink)  
Antiguo 08/08/2014, 14:14
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, 4 meses
Puntos: 2658
Respuesta: Campos númericos en mysql

Cita:
en mi sistema que estoy haciendo el usuario va ingresar un número de ID pero algunos comienzan con 01 (asi me pasaron la bd) y en la bd esta como 1 nada mas entonces si lo buscan como 01
Eso sólo puede suceder en MySQL si el campo ha sido definito como CAHR o VARCHAR, o bien si estás haciendo la comparación como una cadena de texto, y aplique una conversión implícita a texto.
Para asegurarnos deberíamos saber cómo creas la consulta.
Los números en MySQL no se almacenan como cifras, sino como binarios, por lo que el cero a la izquierda no existe, en conseceuncia, el error que dices es imposible en un contexto numérico.

Muevo al foro de MySQL, poque has posteado en el foro equivocado (este es SQL Server).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 10/08/2014, 19:54
 
Fecha de Ingreso: agosto-2013
Ubicación: Guatemala
Mensajes: 137
Antigüedad: 10 años, 7 meses
Puntos: 4
Respuesta: Campos númericos en mysql

Apoyo lo que dice gnzsoloyo deberías ver si el campo en realidad es INT o VARCHAR
  #4 (permalink)  
Antiguo 11/08/2014, 08:45
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Campos númericos en mysql

ok, sucede que esta clave esta por campos separados donde se requiren por ejemplo zona, manzana, lote, edificio y depto y estos dos ultimos son combinados con números y letras, es aqui donde tengo el problema, que a veces están como 01 o 1A y asi

Gracias por tomarse la molestia de ayudar
  #5 (permalink)  
Antiguo 11/08/2014, 09:07
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, 4 meses
Puntos: 2658
Respuesta: Campos númericos en mysql

Cita:
Iniciado por rachpts Ver Mensaje
ok, sucede que esta clave esta por campos separados donde se requiren por ejemplo zona, manzana, lote, edificio y depto y estos dos ultimos son combinados con números y letras, es aqui donde tengo el problema, que a veces están como 01 o 1A y asi

Gracias por tomarse la molestia de ayudar
Entendamos algo desde el principio: Si los datos son catastrales (zona, manzana, lote, edificio y depto son habituales en catastro inmobiliario), y se prduce que lo que debía ser "01" aparece como "1", lo que ha sucedido es un error de inserción y tienes datos sucios en la tabla.
Y en ese caso lo primero que debes hacer es depurar eso.
En pocas palabras, debes unificar los datos de modo que cumplan correctamente con la definición del dato, limpiando cualquier basura producida por la inserción incorrecta. De lo contrario no podrás realizar la query.
Si el daot debe tener si o si dos caracteres, y tienes un "1" en uno de ellos, entonces debes corregirlo. Pero si un "1" es legal en ese contexto, no se debe modificar, sino que deberás realizar la query de modo que contemple correctamente todas las variaciones de los datos que existan.

En definitiva, depende de si "1" es correcto de acuerdo a los datos que deben existir, se decidirá si corresponde modificarlo o no, y eso no queda claro en lo que nos explicas.
¿Puede ser correcto que un departamento se indique como "1", u obligatoriamente debe ser "01" en ese caso?
Si es la primera opción, no es un error, sino un caso de datos correcto que hay que contemplar en la consulta.
Si es la segunda opción, deberás hacer un depurado de datos para corregir aquellos que se insertaron mal, y eventualmente modificar la aplicacion que los inserta para que no se repitan esos problemas.

Tu dirás qué corresponde...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 11/08/2014, 10:59
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Campos númericos en mysql

Primero Gracias por contestar, y si tendré que depurar la bd porq la clave la busca el usuario tal cual como le aparece en un recibo impreso que ya tienen, pero gracias por la ayuda
  #7 (permalink)  
Antiguo 11/08/2014, 11:09
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, 4 meses
Puntos: 2658
Respuesta: Campos númericos en mysql

Cita:
la clave la busca el usuario tal cual como le aparece en un recibo impreso que ya tienen
Eso ya hace sospechar de un error de diseño del formulario, o de la emisión del recibo...
Verifica bien los datos de la tabla. Es posible que la toma de datos para la impresión del recibo no esté bien realizada y en alguna parte esté tomando el "01" como "1".
Muchos errores de ese tipo en realidad se producen en la programación y no en los datos.

Verifica primero la tabla. Luego mira la aplicación para verificar cómo esta manejando los datos a ver si no está haciendo alguna conversión implícita en alguna parte que esté arruinando la generación de las queries.
__________________
¿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, campos, sql, sql-server, usuario
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 09:37.