Necesito MySQL para almacenar números en un campo entero y mantener los ceros a la izquierda. No puedo usar la opción zerofill ya que mi campo actual es Bigint (16) y los números pueden variar en la cantidad de ceros a la izquierda. IE: 0001 - 0005, luego 008 - 010 puede necesitar ser almacenado. No me preocupa la exclusividad de los números (estos no se usan como ID ni nada) pero aún así necesito que se almacenen preferiblemente como INTS.Almacenamiento de ceros iniciales de números enteros en la base de datos MySQL como INTEGER
La cuestión usando CHAR/VARCHAR y luego typecasting los valores como enteros en PHP significa que ordenar los resultados por medio de consultas conduce a alfanuméricos clasificación, IE: ordenar por número de ASC produciría
001
002
003
1
100
101
102
2
Claramente no en orden numérico , pero en orden alfanumérico, que no es deseado.
Con la esperanza de algunas soluciones inteligentes :)
enteros * No tiene * ceros a la izquierda. Solo las representaciones de cadena de ellos pueden. Entonces, si "necesita" ceros a la izquierda, tendrá que almacenar una representación de cadena. ¿Por qué no puedes hacer este tipo de formateo en tiempo de visualización, en lugar de ponerlo en la base de datos? –
1 y 001 y valores diferentes. Pero como int, son lo mismo: ¿cómo deben ordenarse y compararse? como int o como varchar? – gbn