Agregar carácter a registros de un campo

Iniciado por rob1104, 13 Marzo 2010, 22:42 PM

0 Miembros y 1 Visitante están viendo este tema.

rob1104

Hola a todos, tengo una tabla en una base de datos MySQL, la cual tiene un campo nocontrol tipo varchar, el cual es un numero de control de cada persona. Bueno, debido a un error que tuve al importar los datos, es necesario que agregue un 0 a la izquierda de cada registro, debido a que tengo casi 1000 registros me es muy tedioso hacerlo a mano. Ademas algunos si tienen ya el 0 que les corresponde y otros no :S.

¿Alguna forma sencilla de hacerlo?

Lo mostraré con un ejemplo pequeño:
mysql> select * FROM alumnos;
+-----------+---------+-----------+
| nocontrol | nombres | apellidos |
+-----------+---------+-----------+
| 6280268   | Juan    | Gonzalez  |
| 6280269   | Jose    | Gutierrez |
| 6280270   | Raul    | Rodriguez |
| 06280271  | Miguel  | Martinez  |
| 6280272   | Pedro   | Perez     |
+-----------+---------+-----------+
5 rows in set (0.00 sec)


Como ven, quiero que todos queden como el de Miguel Martinez, con ese 0 a la izquierda.

Espero me haya explicado bien.

Saludos


Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.

^Tifa^

A nivel de programacion en un script es mas simple... como ya tienes valores o registros en el campo... podrias crear una vista o otra tabla asi:

CREATE VIEW VISTA AS SELECT CONCAT('0',NOCONTROL), NOMBRES, APELLIDOS FROM ALUMNOS WHERE NOMBRES != 'MIGUEL';

Luego ya si en vez de una vista creas una tabla, podrias borrar la anterior y renombrar la nueva con el nombre de la anterior...

Spider-Net

#2
También podría hacerse desde PHP con un simple script, recorriendo cada uno de los valores en un bucle y concatenando el cero a la izquierda:

Código (php) [Seleccionar]

$sql=mysql_query("SELECT nocontrol FROM alumnos");
while($row=mysql_fetch_array($sql)){
     $nocontrol="0".$row['nocontrol'];
     $actualizar=mysql_query("UPDATE alumnos SET nocontrol='$nocontrol' WHERE nocontrol=\"$row['nocontrol']\"");
}


rob1104

Muchas gracias a los 2, lo solucioné de la siguiente forma:    
Código (php) [Seleccionar]

$sql = mysql_query("SELECT nocontrol FROM alumnos");
while($row = mysql_fetch_array($sql))
{
    if($row[0][0] != 0)
    {
        $nocontrol = "0$row[0]";
$actualizar = mysql_query("UPDATE alumnos SET nocontrol = '$nocontrol' WHERE nocontrol = '$row[0]'");
    }    
}


Saludos
Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.