[MySQL] Komenda do sortowania tabeli? |
[MySQL] Komenda do sortowania tabeli? |
18.01.2015, 08:59:50
Post
#1
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 26.12.2014 Ostrzeżenie: (0%) |
Polecenie SELECT*FROM tabela ORDER BY nazwisko zwraca wysortowane wyniki. Chciałbym posortować tabelę żródłową czy jest na to jakoś komenda?
|
|
|
18.01.2015, 09:13:20
Post
#2
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że |
Masz bana na Google? jak posortować tabelę MySQL.
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
18.01.2015, 17:01:15
Post
#3
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 26.12.2014 Ostrzeżenie: (0%) |
Nie mam bana; przejrzałem kilka odpowiedzi: są typu "po co ci to" lub ORDER BY. Przejrzałem też też PHP i MySql 785 stron prawie bez obrazków a ponieważ nie mam zamiaru tu siedzieć do emerytury więc proszę dobrych ludzi żeby podzielili się swoją wiedzą jeżeli zechcą; gdybyś potrzebował podpowiedzi z elektryki to zapraszam, w tym już jestem dobry.
|
|
|
18.01.2015, 17:13:44
Post
#4
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że |
Wiesz, leniom nie wróżymy przyszłości na tym Forum...
Pierwszy wynik a linku, który podałem: http://webmade.org/kursy-online/sortowanie...-kurs-mysql.php Cytat Rodzaj sortowania nie jest obowiązkowy. Dostępne są dwa rodzaje sortowania:
ASC - sortowanie rosnąco, domyślny sposób sortowania DESC - sortowanie malejąco Przykład zastosowania: SELECT `id`, `nazwisko` FROM `nba` ORDER BY `punkty` DESC Powyższy przykład wyświetli wszystkie wiersze tabeli nba posortowane według pola punky od największej wartość do najmniejszej. Możemy również sortować po kilku polach, np: SELECT `id`, `nazwisko` FROM `nba` ORDER BY `punkty`, `nazwisko` DESC -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
18.01.2015, 17:30:15
Post
#5
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 26.12.2014 Ostrzeżenie: (0%) |
Te komendy to ja znam; może się mylę bo jestem bardzo początkujący ale myślę że Twoja odpowiedź jest błędna ponieważ sortuje wyniki a nie tabelę; jeżeli sortuje tabelę to po Twojej komendzie komenda SELECT*FROM nba powinna zwrócić tabelę posortowaną a raz sprawdziłem i tak nie jest. Sprawdzę jeszcze dokładniej i odpiszę; być może za kilka dni bo teraz mój czas na sql się kończy.
Pozdrawiam. //faktycznie jestem leniwy ale dużo pracuję |
|
|
18.01.2015, 17:36:15
Post
#6
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że |
...myślę że Twoja odpowiedź jest błędna ponieważ sortuje wyniki a nie tabelę Może napisz dokładniej, co chcesz osiągnąć... -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
18.01.2015, 18:06:33
Post
#7
|
|
Grupa: Zarejestrowani Postów: 167 Pomógł: 35 Dołączył: 29.12.2014 Skąd: Otwock Ostrzeżenie: (0%) |
|
|
|
18.01.2015, 20:23:10
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
1. W SQL-u o ile nie podasz jawnie sortowania (klauzula ORDER BY) należy założyć, że wyniki zwrócone są w kompletne losowej kolejności.
2. Zasugerowane przez @SpiritCode rozwiązanie na 99% nie jest tym czego potrzebujesz ani szukasz: http://dev.mysql.com/doc/refman/5.7/en/alt...140236079069136 3. Dlaczego po prostu nie chcesz dodać do zapytania klauzuli ORDER BY? |
|
|
18.01.2015, 20:30:49
Post
#9
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 26.12.2014 Ostrzeżenie: (0%) |
|
|
|
18.01.2015, 20:36:23
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
Możesz rozwinąć? Bo wygląda na to, że w innym miejscu masz coś konkretnie zrypanego. Szczególnie zważywszy na punkt pierwszy z mojego wcześniejszego postu.
|
|
|
18.01.2015, 20:54:31
Post
#11
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 0 Dołączył: 26.12.2014 Ostrzeżenie: (0%) |
Dzięki bardzo!! . Prosta odpowiedź na moje pytanie. Działa poprawnie, sortuje tabelę źródłową a nie wyniki: mysql> SELECT *FROM czas1; +----+-----------+-------------+ | id | imie | nazwisko | +----+-----------+-------------+ | 7 | Adam | Małysz | | 8 | Artur | Wielki | | 9 | Sebastian | Małolepszy | | 10 | Bernard | Aautorski | +----+-----------+-------------+ 4 rows in set (0.00 sec) mysql> ALTER TABLE czas1 ORDER BY nazwisko; Query OK, 4 rows affected (0.20 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM czas1; +----+-----------+-------------+ | id | imie | nazwisko | +----+-----------+-------------+ | 10 | Bernard | Aautorski | | 9 | Sebastian | Małolepszy | | 7 | Adam | Małysz | | 8 | Artur | Wielki | +----+-----------+------------- 1. W SQL-u o ile nie podasz jawnie sortowania (klauzula ORDER BY) należy założyć, że wyniki zwrócone są w kompletne losowej kolejności. Chyba niekoniecznie losowy bo po zapytaniu o rekord 3 takiego wyniku się spodziewałem: // to do tej tabeli po komendzie ALTER. mysql> SELECT * FROM czas1 LIMIT 2,1; +----+------+----------+ | id | imie | nazwisko | +----+------+----------+ | 7 | Adam | Małysz | Dziękuję za zainteresowanie moim tematem. |
|
|
19.01.2015, 06:24:10
Post
#12
|
|
Grupa: Zarejestrowani Postów: 167 Pomógł: 35 Dołączył: 29.12.2014 Skąd: Otwock Ostrzeżenie: (0%) |
Załapałem się na 1%
|
|
|
19.01.2015, 07:38:52
Post
#13
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
@lesz735: Ale zdajesz sobie sprawę z tego, że:
1. Dodanie bądź aktualizacja rekordów zniszczy ten porządek? 2. Zadziała to wyłącznie dla tabel typu MyISAM, których raczej nie powinieneś używać - InnoDB jest zdecydowanie preferowane. 3. Niemal pewne jest, że Twój inny kod, który wymaga takich dziwnych warunków jest zrypany. |
|
|
19.01.2015, 11:14:14
Post
#14
|
|
Grupa: Zarejestrowani Postów: 167 Pomógł: 35 Dołączył: 29.12.2014 Skąd: Otwock Ostrzeżenie: (0%) |
Fakt, że czegoś takiego jak srotowanie tabeli źródłowej jest do kitu to jedno.
Inna rzecz, że możesz w dowolnej kolejności przecież posortować wynik zapytania. |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 08:18 |