![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym posortować tabelę mySQL według pola "kolejnosc". Pole to zawiera liczby zmiennoprzecinkowe. Chodzi mi teraz o to żeby posortować wszystkie wpisy w tabeli wedłóg wartości w tym polu ale tak aby nowo powstała tabela zawierała liczby od 1 w górę w polu "kolejnosc". np:
Kod ID | Name | kolej ------------------------ 1. | abcde | 1.12 2. | dedgh | 3.23 3. | asdfs | 0.45 miałoby przetworzoną postac Kod ID | Name | kolej ------------------------ 3. | asdfs | 1 1. | abcde | 2 2. | dedgh | 3 I ważne jest żeby ta nowa tabela zapisała sie na serwerze mySQL. Nie chodzimi tylko o wyswietlenie. Wie ktoś może z której strony to ugryźć ? Ten post edytował Black-Berry 13.06.2007, 11:09:46 |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
A pole id się nie przestawia?
Jeśli to ma być ponownie zapisane, to najlepiej zaciągnąć te wartości z bazy, obrobić je (posortować) np. w php i ponownie zapisać do bazy. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Pole ID to klucz główny (zapomniełem przestawić - już poprawiam). Sposób który proponujesz jest dobry ale wymaga PHP a dobrze byłoby to zrobić zapytaniem do bazy bo zależy mi na optymalizacji.
Ten post edytował Black-Berry 13.06.2007, 11:10:37 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
no dobry pomysł ale może dałoby się działać tylko na 1 tabeli ? Może ktoś wie jak zrobić procedurę jakąś.
P.S. Co znaczy ENGINE = MYISAM;? Ten post edytował Black-Berry 13.06.2007, 13:38:05 |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat P.S. Co znaczy ENGINE = MYISAM;? To znaczy, ze masz zajrzec do manuala: http://dev.mysql.com/doc/refman/5.0/en/storage-engines.html ps: a na grzyba ci trzymac w tabeli dane posortowane? Po to stworzono bazy danych by kombinowac jak najmniej. chcesz miec cos posortowane to uzywasz select .... order by..... a nie kombinujesz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Po to sa indexy by takie operacje byly szybkie. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Bo dane wprowadzam 30 razy rzadziej niz odczytuje (chodzi o miejsca w kodzie gzie mam odpowiednie procedury). Jesli od razu po wprowadzeniu sobie posortuję to później mam łatwiej. Nie muszę przy odczycie wprowadzać dodatkowych zmiennych. A poza tym struktura systemu jest bardziej przejżysta. To naturalne jeśli wszystko mam posortowane przed odczytem.
Ten post edytował Black-Berry 13.06.2007, 14:53:31 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
Można to zrobić na jednej tabeli. Radzę zastosować w takim przypadku wykorzystać transakcje, wtedy to mniej-więcej wygląda tak (pisane 'z palca' za błędy przepraszam):
Ten post edytował Darti 13.06.2007, 15:20:26 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
dobra przeanalizuję to i poczytam manuale (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) dzięki darti jeszcze raz.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 08:36 |