El post que buscas se encuentra eliminado, pero este también te puede interesar

Rellenar de ceros Campos en Mysql después de una migración

Rellenar de ceros en Mysql después de una migración
Siempre existe problemas el momento de migrar información entre ellos como ejemplo es que cuando se migro se tenía contemplado 10 caracteres para el numero de celular, pero al migrar existían datos con 9 o más espacios en blanco guiones etc., ya que han puesto dos números celulares, y como mi aplicativo para mostrar el celular necesita exactamente que sean 10 caracteres numéricos se presenta el problema.

1. Quitar modo seguro a Mysql para que se ejecute sin mayor problema
SET SQL_SAFE_UPDATES=0;
2. Tener en cuenta que se tiene que eliminar los campos innecesarios como espacios en blanco guiones etc.; ejemplo ins_celular es mi campo, y la tabla reg_instructor
SELECT ins_codigo, trim(REPLACE(ins_celular, ' ', '')) as NUM1 from reg_instructor;
Si se tenía el número de celular ‘999 9999999* ’ se tendrá que tener ‘9999999999*’ el asterisco es una carácter inservible que se dio en la migración como pudo ser separador de números etc.
3. Ahora se debe recuperar los 10 dígitos que cumplan con el requerimiento

SELECT ins_codigo, LEFT(ins_celular,10) as a from reg_instructor;
Esto se realizará con respecto a la consulta anterior mostrando algo como
‘9999999999’

4. Y en el caso de que no existan los 10 dígitos se tendrá que rellenar con un cero más a la izquierda usando LPAD

select ins_codigo, LPAD(trim(LEFT(ins_celular,10)),10, '0')as LEFTPADDED from reg_instructor;

En resumen lo que ejecute en mi prompt de MYSQL fue

-- limpio los espacios en blanco
UPDATE reg_instructor SET ins_celular = trim(REPLACE(ins_celular, ' ', ''))
WHERE ins_celular <> 'S/D';

-- dejo los 10 primeros caracteres del campo
UPDATE reg_instructor SET ins_celular = LEFT(ins_celular,10)
WHERE ins_celular <> 'S/D';

-- limpio el caracter /
UPDATE reg_instructor SET ins_celular = trim(REPLACE(ins_celular, '/', ''))
WHERE ins_celular <> 'S/D';


-- relleno de ceros adjuntando todo lo anterior
UPDATE reg_instructor set ins_celular = LPAD(trim(LEFT(ins_celular,10)),10, '0')
WHERE ins_celular <> 'S/D' AND ins_codigo > 0;

Anuncios

0 comentarios - Rellenar de ceros Campos en Mysql después de una migración