Agregar un cero inicial a algunos valores en la columna en MySQL

Tengo un archivo CSV enviado a mí en CSV. El campo de interés es de 8 dígitos. Algunos de ellos comenzaron con 0. El campo fue enviado numérico. Entonces, ahora he dejado caer algunos ceros a la izquierda.

Ya convertí el campo a varchar. Ahora necesito hacer esto:

Tengo esto ahora:

12345678 1234567 

Necesito tener esto:

 12345678 01234567 

Cambie el campo de nuevo a numérico y use ZEROFILL para mantener los ceros

o

usar LPAD()

 SELECT LPAD('1234567', 8, '0'); 

Posiblemente:

 select lpad(column, 8, 0) from table; 

Editado en respuesta a la pregunta de mylesg, en los comentarios a continuación:

ok, parece hacer el cambio en la consulta, pero ¿cómo lo hago para pegarlo (cambiarlo) permanentemente en la tabla? Intenté una ACTUALIZACIÓN en lugar de SELECCIONAR

Supongo que usaste una consulta similar a:

 UPDATE table SET columnName=lpad(nums,8,0); 

Si eso fue exitoso, pero los valores de la tabla siguen sin ceros a la izquierda, entonces sugiero que probablemente establezca la columna como un tipo numérico. Si ese es el caso, entonces necesitaría modificar la tabla para que la columna sea del tipo text / varchar () para preservar los ceros a la izquierda:

Primero:

 ALTER TABLE `table` CHANGE `numberColumn` `numberColumn` CHAR(8); 

Segundo, ejecuta la actualización:

 UPDATE table SET `numberColumn`=LPAD(`numberColum`, 8, '0'); 

Esto debería, entonces, preservar los ceros a la izquierda; el lado negativo es que la columna ya no es estrictamente de tipo numérico; por lo que es posible que tenga que aplicar una validación más estricta (según su caso de uso) para asegurarse de que los números no numerales no se ingresen en esa columna.

Referencias

  • lpad() .