Aktualizuj wartości przyrostowo w mysql

Jedno pole pola mojej tabeli jest ustawione na 0 dla wszystkich wierszy. ale chcę zaktualizować do wartości przyrostowej przez krok 1 w zapytaniu o aktualizację.

Jak to zrobić w mysql?

Author: linuxbuild, 2010-12-14

3 answers

Spróbuj tego:

mysql> select @i := 0;
mysql> update bar set c = (select @i := @i + 1);
 95
Author: Pablo Santa Cruz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-14 12:18:04
SET @a = 0;  
UPDATE customers SET id = @a:=@a+1;
To też możesz zrobić.
 6
Author: DRUPWAY,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-27 06:59:57

Jednym ze sposobów jest utworzenie nowej tabeli z kolumną AUTO_INCREMENT zamiast oryginalnej kolumny, wstawienie wszystkich danych ze starej do nowej tabeli, a następnie zmiana nazwy nowej i usunięcie starej.

Innym sposobem jest uruchomienie zapytania o aktualizację za pomocą zmiennej MySQL , która generuje rosnącą liczbę dla każdego wiersza (aby emulować funkcję ROW_NUMBER () znajdującą się w innych systemach DBMS).

 3
Author: thomaspaulb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-14 12:17:44