poner como column autoincremental autoincrement auto_increment mysql auto-increment temporary

mysql - como - java db auto_increment column



MySQL: columna temporal de incremento automático en declaración selecta (3)

¿Pero qué pasa si tienes un group by en la declaración de selección? el conteo estará apagado.

Para tales casos, la única solución que encontré es anidar seleccionar:

SELECT (@cnt := @cnt + 1) AS rowNumber, t.* from (select t.rowID FROM myTable WHERE CategoryID = 1 ORDER BY rowID) t CROSS JOIN (SELECT @cnt := 0) AS dummy

¿Cómo creo e incremento automáticamente una columna temporal en mi declaración de selección con MySQL?

Aquí está lo que tengo hasta ahora:

SET @cnt = 0; SELECT (@cnt =@cnt + 1) AS rowNumber, rowID FROM myTable WHERE CategoryID = 1

Que devuelve:

+++++++++++++++++++++ + rowNumber | rowID + +++++++++++++++++++++ + (NULL) | 1 + + (NULL) | 25 + + (NULL) | 33 + + (NULL) | 150 + + (NULL) | 219 + +++++++++++++++++++++

Pero yo necesito:

+++++++++++++++++++++ + rowNumber | rowID + +++++++++++++++++++++ + 1 | 1 + + 2 | 25 + + 3 | 33 + + 4 | 150 + + ... | ... + +++++++++++++++++++++


Esto le dará un número de fila consecutiva con 3 .

SELECT (@cnt := @cnt + 1) AS rowNumber, t.rowID FROM myTable AS t CROSS JOIN (SELECT @cnt := 0) AS dummy WHERE t.CategoryID = 1 ORDER BY t.rowID ;

Resultado

| ROWNUMBER | ROWID | --------------------- | 1 | 1 | | 2 | 25 | | 3 | 33 | | 4 | 150 |


Prueba esto:

SET @rownr=0; SELECT @rownr:=@rownr+1 AS rowNumber, rowID FROM myTable WHERE CategoryID = 1