2011-03-04 27 views
6

Tengo un campo INT en una gran base de datos MySQL que contiene números incrementales en un campo INT. Estos números son actualmente números de autoincrement regulares (1, 2, 3), pero necesito rellenarlos con tres dígitos con ceros al principio (de modo que obtengo 001, 002, 003 ... 010, 011, etc.).Rellenar el comienzo de un campo mysql INT con ceros

¿Qué comandos puedo ejecutar en mi base de datos para cambiar esta columna al formato que necesito?

+0

posible duplicado de [¿Cómo puedo establecer el formato de autoincrement en 0001 en MySQL?] (Http://stackoverflow.com/questions/611340/how-can-i-set-autoincrement-format-to-0001- in-mysql) –

Respuesta

16

Usted puede agregar un atributo ZEROFILL a la columna para rellenar los datos en la base de datos o, al consultar,

SELECT LPAD(CONVERT(`col`,VARCHAR(3)),3,'0') 

es posible recuperar los datos formateados como un número de 3 dígitos

+1

+1: no te metas con los datos en la base de datos, cambia los datos en el formato que necesites al consultar la base de datos. – andri

+0

De acuerdo, siempre muestre los datos de manera diferente, no cambie los datos en la base de datos – Simon

+0

Necesito que los datos estén en el formato de tres dígitos cuando ejecuto el comando de selección, por lo que quise cambiar los datos en la base de datos. Esto debería funcionar sin embargo. – MarathonStudios

1

No hay tal cosa como tener ceros a la izquierda en los datos en un campo numérico en la base de datos; los datos simplemente no se almacenan de esa manera, como tampoco se almacenan en números romanos. Todo lo que tienes es el número tres; por lo que si desea obtener la cadena "003" fuera, usted tiene dos opciones:

  • afectada: en un campo de cadena en la base de datos: no se recomienda porque no se puede conseguir fácilmente los números de incremento.
  • Formatee el número a medida que lo recupera de la base de datos para agregar ceros a la izquierda: mejor, pero tiene sus propias desventajas, p. las comparaciones serán más lentas porque no están indexadas.
Cuestiones relacionadas