Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Złożone sortowanie
Forum PHP.pl > Forum > Bazy danych > MySQL
zibra
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
NuLL
  1. SELECT (t.p1+t.p2-t.p3-t.p4) AS klucz FROM tabela t ORDER BY klucz DESC
zibra
Chyba mi to nie działa... Tzn. nie sortuje jak należy.

To oznacza literka t. ? Czy masz jakiś tutek o tym?
bela
T to alias dla tabela
  1. FROM tabela t
zibra
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...
nospor
zajrzyj do manuala i poczytaj o IFNULL
zibra
poczytałem... ale nie wiem jak to tu dołączyć... :/
nospor
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
zibra
Dzięki

Kombinowałem ale mój błąd polegał na tym że robiłem chyba t.ifnull(p1,0)...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.