Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: rob1104 en 13 Marzo 2010, 22:42 pm



Título: Agregar carácter a registros de un campo
Publicado por: rob1104 en 13 Marzo 2010, 22:42 pm
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:
Código:
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




Título: Re: Agregar carácter a registros de un campo
Publicado por: ^Tifa^ en 14 Marzo 2010, 00:23 am
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...


Título: Re: Agregar carácter a registros de un campo
Publicado por: Spider-Net en 14 Marzo 2010, 01:15 am
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
  1. $sql=mysql_query("SELECT nocontrol FROM alumnos");
  2. while($row=mysql_fetch_array($sql)){
  3.      $nocontrol="0".$row['nocontrol'];
  4.      $actualizar=mysql_query("UPDATE alumnos SET nocontrol='$nocontrol' WHERE nocontrol=\"$row['nocontrol']\"");
  5. }
  6.  


Título: Re: Agregar carácter a registros de un campo
Publicado por: rob1104 en 16 Marzo 2010, 07:59 am
Muchas gracias a los 2, lo solucioné de la siguiente forma:    
Código
  1. $sql = mysql_query("SELECT nocontrol FROM alumnos");
  2. while($row = mysql_fetch_array($sql))
  3. {
  4.    if($row[0][0] != 0)
  5.    {
  6.        $nocontrol = "0$row[0]";
  7. $actualizar = mysql_query("UPDATE alumnos SET nocontrol = '$nocontrol' WHERE nocontrol = '$row[0]'");
  8.    }  
  9. }

Saludos