Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Złożone sortowanie
zibra
post 18.07.2006, 15:13:57
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 26.10.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam!

Mam tabelę mysql z kolumnami, w których mam jakieś liczby. Chciałbm posortować dane pobierane z tabeli np. wdług sumy / różnicy tych pól... Jak to zrobić?

np. mam pola: p1 p2 p3 p4

i chcę żeby dane pobierane z tabeli były sortowane rosnąco według wyniku działania: p1 + p2 - p3 - p4
Go to the top of the page
+Quote Post
NuLL
post 18.07.2006, 17:00:55
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


  1. SELECT (t.p1+t.p2-t.p3-t.p4) AS klucz FROM tabela t ORDER BY klucz DESC


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
zibra
post 18.07.2006, 17:57:43
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 26.10.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Chyba mi to nie działa... Tzn. nie sortuje jak należy.

To oznacza literka t. ? Czy masz jakiś tutek o tym?
Go to the top of the page
+Quote Post
bela
post 18.07.2006, 22:01:02
Post #4


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


T to alias dla tabela
  1. FROM tabela t


--------------------
Go to the top of the page
+Quote Post
zibra
post 19.07.2006, 10:12:10
Post #5





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 26.10.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Działa, bo sprawdziłem w phpmyadminie co było nie tak i problem teraz polega na tym, że jesli któreś z tych pól ma wartość NULL to końcowy wynik obliczeń jest też NULL. Można jakoś poprawić ten kod tak żeby dla pól, które są puste przyjmował wartość 0? Nie za bardzo mogę wstawić wartość 0 do tych pól bo troche mi to zaburzy pozostałą część skryptu...
Go to the top of the page
+Quote Post
nospor
post 19.07.2006, 10:13:07
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zajrzyj do manuala i poczytaj o IFNULL


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
zibra
post 19.07.2006, 10:27:25
Post #7





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 26.10.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


poczytałem... ale nie wiem jak to tu dołączyć... :/
Go to the top of the page
+Quote Post
nospor
post 19.07.2006, 11:01:23
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




mowiac poczytaj mialem na mysli: poczytaj i sprobuj sam cos zrobic...
  1. SELECT (ifnull(t.p1,0)+ifnull(t.p2,0)-ifnull(t.p3,0)-ifnull(t.p4,0)) AS klucz FROM tabela t ORDER BY klucz DESC


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
zibra
post 19.07.2006, 15:54:41
Post #9





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 26.10.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Dzięki

Kombinowałem ale mój błąd polegał na tym że robiłem chyba t.ifnull(p1,0)...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 15:13