![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 0 Dołączył: 7.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.Otóż jak najktuczeniej i najoptymalniej posortować i zmienić id wedłóg daty mam np.
tabela1 ---------------- id |time|name ----------------- 1|2011-10-01 ---------------- 2|2012-10-01 ---------------- 3|2011-09-01 ---------------- aby tabela po sortowaniu zrobiła się na UPDATE: tabela1 ---------------- id |time|name ----------------- 1|2012-10-01 ---------------- 2|2011-10-01 ---------------- 3|2011-09-01 ---------------- Poprosti id zmienił się wedłóg najnowszej daty,i chciałbym to zrobić dla 3 tabel na raz(jeśli da radę a jeśli nie to może być dla jednej) w miare optymalnie . Wiem jak wyciągnąć rekordy wedłóg najnowszej daty,ale niewiem jak najskuteczniej zmienić te id wedłóg tego i odrazu zapisać.Próbuje coś takiego:
Ale edytuje mi wszystkie id na najnowszy czas Proszę o pomoc Ten post edytował szypi1989 25.03.2012, 11:05:03 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 0 Dołączył: 7.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
ok.działa.Ale zauważyłem że wykonuje mi od następnego id i zgłasza błąd:#1062 - Duplicate entry '0' for key 'PRIMARY'
Jednak coś nie działa:( przez ten błąd Ten post edytował szypi1989 25.03.2012, 13:38:03 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Wykonaj to zapytanie dwukrotnie, przy czym najpierw ustaw dużą wartość zmiennej @i (wartość ostatniego id w tabeli + 1).
Inaczej chyba nie da się tego zrobić, ponieważ `id` jest w tej tabeli kluczem głównym i bez zastosowania powyższej sztuczki zawsze któryś z wierszy (a dokładniej któraś z wartości id) będzie się powtarzać, co skutkuje wspomnianym błędem. EDIT1: Swoją drogą takich rzeczy raczej się nie robi. Jednak da się to zrobić inaczej:
EDIT2: Pamiętaj, aby testować zapytania na kopii danych, bo nigdy nie wiadomo, czy wszystko pójdzie dobrze. Np. nie jestem pewien, jak się zachowa drugie zapytanie w sytuacji, gdy któryś z rekordów wcześniej został usunięty. Ten post edytował mortus 25.03.2012, 15:26:22 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 0 Dołączył: 7.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
chyba coś jest w tym zapytaniu źle,ponieważ występuje błąd
EDIT:działa ale tylko jak skopije z jednej tabeli do nowej ponieważ inaczej wyskakuje mi błąd Ten post edytował szypi1989 25.03.2012, 20:17:01 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
No w powyższym zapytaniu dopisałem [, ...] oznaczające dodatkowe kolumny, co trzeba oczywiście z zapytania usunąć.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 0 Dołączył: 7.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
usunełem te kolumny oczywiście już odrazu,jednak działa,wszystko przez to że nie zrobiłem Aliasów.Dzięki bardzo:)
Ten post edytował szypi1989 25.03.2012, 20:20:39 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.06.2025 - 13:28 |