![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 6.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Pomijając kwestię czy jest to rozsądne potrzebuje w jednym miejscu posortować wyniki selecta po trzech kolumnach:
Kod SELECT * FROM `table` ORDER BY col1 DESC, col2 ASC, col3 DESC LIMIT 0,10 lub coś zbliżonego niestety sortuje tylko po col1 i col2 - col3 zlewa zupełnie. Ograniczenie mysql 4.1, czy co? nie znalazłem w sieci ani jednego przykładu na order by z 3 kolumnami.. Wszelkie sugestie mile widziane. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
a jesteś pewny że zachodzi taka konieczność (w sęsie czy baza napotyka problem i musi szukać 3 możliwości sortowania)?
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 6.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
I owszem col1 = status (5 możliwości), col2 = typ (6 możliwości), col3 = id (klucz główny) - bardzo często zachodzi sytuacja gdy dla więcej niż 1 wiersza col1 i col2 są takie same, a wręcz w 90% przypadków są, tak więc col3 również powinno brać pod uwagę. Co więcej widzę w wynikach przypadki gdy są w złej kolejności..
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 6.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
3x INT, to też nie to :/
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
no to może pokaż konkretnie to pytanie SQL, definicję tabeli, i jakie wyniki zwraca, bo na pewno nie jest to tabela z col1, col2 i col3...
to co pokazujesz TEORETYCZNIE powinno działać - skoro nie działa - to pokaż jak naprawdę to wygląda w TWOIM wykonaniu - gdzieś masz błąd i już... jak nie pokażesz prawdziwego kodu nie znajdziesz prawdziwej przyczyny problemów... -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 6.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście jest "nieco" bardziej skomplikowane, ale do tego się sprowadza
Powycinałem kolumny nie wykorzystywane w zapytaniu, żeby bałaganu nie wprowadzać
Sortowanie po dowolnych 2 z tych 3 działa - nie ma problemu status+pid, matches+status, matches+pid, wszystkie trzy niestety już nie. Ten post edytował DeyV 17.12.2007, 23:33:48
Powód edycji: formatowanie kodu
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
u mnie edytor zapytań podświetla we fragmencie
Kod p.status ASC wyraz status jako słowo zastrzeżone. spróbuj w całym zapytaniu ująć wszystkie nazy pól i tabel w `odwócone apostrofy` (w klauzuli ORDER BY w szczególności) ...poza tym fragment Kod IN (val1, val2, val3,..) zgłasza błąd składni - ale to chyba tylko przykład (chociaż prosiłem o rzeczywiste zapytanie - więc kto wie)...powodzenia. -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 6.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
przykładowe zapytanie
Ten post edytował c2h5oh 18.12.2007, 12:31:14 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie jest poprawne. Używanie słów zastrzeżonych mysql'a jest niebezpieczne. Można stracić długie wieczory nad poszukiwaniem błędu. Chyba najlepiej by było jakbyś pokazał wynik Twojego zapytania w postaci wynikowej tabeli, a najlepiej dodatkowo pliki sql całych tabel. Jesteśmy ciekawi co w tym siedzi
![]() -------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 6.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
To jeszcze udziwnię, żeby do było zabawniej:
Nie działa
Smiga bez problemu Czy ktos ma jakiekolwiek pojecie o co biega? |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Pokaż wynik tych zapytań.
-------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 17.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli pierwsze zapytanie zadziałało, to nie ma bata - drugie też musi - jedyne co mi przychodzi go głowy, to że niewłaściwie interpretujesz sortowanie i dane posortowane bierzesz, za nieposortowane. Ale żeby to sprawdzić, musimy zobaczyć wynik obu zapytań.
Ten post edytował clarkfinger 20.12.2007, 00:11:26 -------------------- Kropla wody może rzeźbić skały jeśli działa dostatecznie długo, tak człowiek może rozwiązać każdy problem jeśli pragnie dostatecznie bardzo...
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
Otóż to. Jak powie św. Tomasz. "Nie zobaczę - nie uwierzę"
![]() -------------------- |
|
|
![]()
Post
#15
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
7 postów wstecz zasugerowałem, żeby wszystkie nazwy pól i tabel ująć w `odwrócone apostrofy` - zgodnie ze składnią MySQL - z prostej przyczyny - wyrażnie STATUS jest słowem zastrzeżonym w MySQL i swobodne używanie go wewnątrz zapytania może (chociaż nie musi) prowadzić do takich trudnych do wychwycenia błędów... ale niestety kolega c2h5oh (a dlaczego nie c2h5cooh
![]() ![]() -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 6.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Sprawa wyjasnila sie juz kawal czasu i temu i dobrze myslalem - zdurnialem do reszty - bylo sortowanie po councie i jakies stare duplikaty
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 04:44 |