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
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...
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:
$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']\"");
}
Muchas gracias a los 2, lo solucioné de la siguiente forma:
$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