Ver Mensaje Individual
  #8 (permalink)  
Antiguo 14/02/2013, 10:46
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses
Puntos: 2658
Respuesta: asignar numero a lista de registros

1) Crea el campo que necesitas, supongamos "NUM".
2) Crea una tabla temporal, usando la lógica de tu propia consulta, tal que recuperes los verdaderos identificadores, junto con el código fabricado y ficticio:

Código MySQL:
Ver original
  1. CREATE TEMPORARY TABLE tablatemporal
  2. SELECT  (@rnum := @rnum +1) idNum, codigo
  3. FROM tabla, (SELECT @rnum :=0) x
3) Usa la tabla temporal como referencia para haer el UPDATE:
Código MySQL:
Ver original
  1. UPDATE tabla t, tablatemporal t2
  2. SET num = idnum
  3. WHERE T.codigo = t2.codigo;

Nota importante: todas las acciones deben hacerse manualmente en una única sesión de MySQL, o no funcionará la tabla TEMPORARY.

Finalmente:

4) Aclárales a los que te hicieron este pedido que lo que ellos quieren se considera una pésima práctica en el diseño y administración de bases de datos. Y que cualquier uso diferente al indicado de esos códigos inventados puede, eventualmente, generar problemas de consistencia e integridad de datos.
Eso, al menos, puedo asegurártelo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)