Autoincrementar un valor al vuelo con MySql
Asignar un valor a una variable en mysql e incrementarla por cada fila que recorre una SELECT o una UPDATE permite crear un contador sin recurrir a lenguajes de programación externos.

Tabla de ejemplo
+----------+--------+-----------+ | fruit_id | name | somevalue | +----------+--------+-----------+ | 1 | Banana | 0 | | 2 | Orange | 0 | | 3 | Cherry | 0 | | 4 | Apple | 0 | +----------+--------+-----------+
SELECT con valor auto increment
Definir una variable en mysql sigue la siguiente sintaxis: SELECT @i:=0, ejemplo completo:
SELECT *, @i:=@i+1 AS i FROM fruit ORDER BY name;
Y el resultado sería:
+----------+--------+-----------+------+ | fruit_id | name | somevalue | i | +----------+--------+-----------+------+ | 4 | Apple | 0 | 1 | | 1 | Banana | 0 | 2 | | 3 | Cherry | 0 | 3 | | 2 | Orange | 0 | 4 | +----------+--------+-----------+------+
UPDATE con auto increment
Igualmente, es posible declarar variable y usarlas para asignar valores a una tabla sql. El siguiente ejemplo actualiza los valores del campo somevalue ordenado por el campo name
UPDATE fruit SET somevalue = @i:=@i+1 ORDER BY name;
Una vez ejecutada la sentencia nuestra tabla contendría los siguientes valores:
+----------+--------+-----------+ | fruit_id | name | somevalue | +----------+--------+-----------+ | 1 | Banana | 2 | | 2 | Orange | 4 | | 3 | Cherry | 3 | | 4 | Apple | 1 | +----------+--------+-----------+
Vía electrictoolbox
Posts relacionados:
- Contenido relacionado con mysql
- Cambiar password de root en MySQL
- Usando + para unir arrays en PHP
- Cuidado con parseInt en javascript
