![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 19.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam zebranych,
chciałbym się dowiedzieć w jaki sposób zrobić update do bazy, aby zmienić ID wszystkim rekordom by owe ID było względem siebie rosnące. Sprawa wygląda tak, że mam straszne luki w tym id i chciałbym je pozmieniać na rosnące liczby. Jakim poleceniem mogę to zrobić? Aktualnie mam ID TABELA 21 Andrzej 47 Grzegorz 67 Anna Chciałbym to zmienić na 1 Andrzej 2 Grzegorz 3 Anna |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Po co? ID is ID - nie zmienia się.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 19.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
W formie zdobywania doświadczenia może być?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ale to jest totalnie bezsensu. Chcesz sobie numerować to sobie numeruj w pętli. A do zdobywania doświadczenia Ci się to nie przyda.
Sam update robisz za pomocą UPDATE. -------------------- Google knows the answer...
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 19.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
Ale nie wiem jak sie za to zabrać. Jestem wstanie wygenerować sobie w pętli określona ilość numerów, ale jak skonstruować zapytanie?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
W pętli masz jakiś index a przy przebiegu pętli zwiększasz jego wartość o jeden. Reszta to podstawowe zapytanie UPDATE, ale podkreślam, tak się nie robi w żaden sposób.
-------------------- Google knows the answer...
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Kiedyś też chciałem łatać luki w identyfikatorach i robiłem to tak (przykład na przestarzałych funkcjach mysql_):
Dzięki ORDER BY `id` ASC nie zrobi się bałagan, bo nadpisujesz zawsze identyfikatory większe lub równe aktualnej zmiennej iteracyjnej. Ale jak koledzy wyżej wspomnieli, łatanie dziur nie ma sensu ![]() ![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 19.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
Jest jeszcze lepiej niż było, pojawiło sie id 0 i między wierszami zgubiły się liczby
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Dodaj nową kolumnę, np. pole.
Usuń id, zmień pole na id. Możesz też update'ować samą siebie jeśli masz pewność, że nie nastąpi kolizja (jeśli pole to klucz lub ma indeks unique). Ten post edytował trueblue 22.07.2014, 19:22:36 -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 19.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
Użyłem tego zapytania i niby coś się zrobiło, ale nie mogę posortować rekordów względem kolumny `pole`. Podczas sortowania nie zachowuje kolejności rosnącej/malejącej. Przy czym z tego co widzę, to nowa nuemracja nie zachowała starej kolejności, jest na to sposób?
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Pisałem z palca w jednym miejscu zrobiłem $i zamiast $id. Popraw to i spróbuj.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 19.01.2013 Ostrzeżenie: (0%) ![]() ![]() |
Z problemami, ale jakoś poszło rozwiązanie Smoka, dziękuję.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 15:21 |