Muchas veces cuando hacemos una consulta SQL nos interesaría poder tener un ID al lado para poder posicionarnos o referirnos a una línea del resultado. Dicho de otra forma, tener un campo autoincremental que dependiese de la consulta y no de la propia tabla. Gracias a ese campo nos podríamos referir a los datos de la fila 4 y sería más rápido para todos poder referenciarlos.
mysql> SELECT alias,name FROM users; +----------+---------+ | alias | name | +----------+---------+ | Admin | Zabbix | | guest | Default | | javier | Javier | | adm | Adm | | alberto | Alberto | +----------+---------+
Existe un pequeño truco en MySQL que nos permite hacer una consulta de ese tipo y obtener la fila extra que realmente interesa. A continuación lo vemos.
mysql> SET @num=0; Query OK, 0 rows affected (0.00 sec) mysql> SELECT @num:=@num+1 AS pos,alias,name from users; +-----+----------+---------+ | pos | alias | name | +-----+----------+---------+ | 1 | Admin | Zabbix | | 2 | guest | Default | | 3 | javier | Javier | | 4 | adm | Adm | | 5 | alberto | Alberto | +-----+----------+---------+
Como bien podéis observar lo que hacemos es crear en tiempo de ejecución una variable, num, inicializada a cero (o al valor que deseemos) y que luego la colocamos en el SELECT, incrementando el valor de ésta en cada iteración resultante. Así de forma muy sencilla tenemos el ID que estábamos buscando y que nos indica la posición de cada una de las filas.
No hay comentarios :
Publicar un comentario