Pregunta: ¿Cómo numerar secuencialmente una consulta, sin usar PK?
Respuesta: Numerar dinámicamente con variables de usuario. Ocasionalmente alguien realiza una consulta a una tabla y por cuestiones de comodidad quiere que los registros obtenidos sean numerados, pero la tabla o no tiene ID autonumérico o bien el mismo tiene "huecos" en la numeración o al menos números faltantes.
Bueno, para hacer que MySQL numere en una columna en forma directa una tabla recuperada de una consulta hay que usar una variable de tipo global y realizar la consulta como subconsulta, de esta forma:
Código sql:
Ver originalSELECT
(@REG := @REG + 1) Linea,
Campo1,
Campo2,
Campo3
FROM
(SELECT
@REG :=0,
Campo1,
Campo2,
Campo3
FROM Tabla1) Tabla2;
Debe forzosamente hacer la definición de la variable global
dentro de la subconsulta para que la misma pueda existir, sin lo cual el resultado de la columna Linea se vuelve NULL.