webForumDet fria alternativet

SQL fråga med uträkning

6 svar · 698 visningar · startad av mollemus

mollemusMedlem sedan jan. 200833 inlägg
#1

Jag har en tabell med två kolumner som jag sedan vill sortera efter värdet som är lika med den ena kolumnen delat med den andra, är det möjligt?

som t.ex.

SELECT * FROM TABLE_NAME ORDER BY C1/C2

vilket inte funkar, men kanske det går att skriva det i någon annan form.

PeddaMedlem sedan juni 20006 032 inlägg
#2

Flyttas från PHP

spangoMedlem sedan juni 20008 205 inlägg
#3

Man ska aldrig säga att något inte funkar. Man ska alltid säga HUR något inte funkar. Felmeddelande?

mollemusMedlem sedan jan. 200833 inlägg
#4

Hehe, mjo får inga felmeddelanden, får bara tomt, antar att jag inte ställt in så jag får felmeddelanden.

überfuzzMedlem sedan apr. 2006409 inlägg
#5

Utan att veta vad du vill göra kan jag få föreslå sort() i stället? Ibland kan det vara idé att querya in raderna i arrayer och sedan massera fram det man vill ha. Php har många bra kärnfunktioner.

//Lägg kolumnerna i två arrayer
$c1[] = query_rad_c1[];  //du får koda själ. ;-)
$c2[] = query_rad_c2[];
//gå igenom arrayerna 
for ($i++ /*etc */){
$divided[$i] = c1[$i]/c2[$i];
}
sort($divided);
spangoMedlem sedan juni 20008 205 inlägg
#6

Kan man utföra det i databasmotorn är det klart bättre att göra det där, och jag kan inte se någon anledning till varför det skulle strula med att sortera på ett uträknat fält - jag ser faktiskt ens någon anledning till varför frågan i OP inte skulle funka, så länge kolumnerna finns i tabellen. Men eftersom vi inte får se några felmeddelanden går det inte att säga vad det är som är fel...

SPiNMedlem sedan mars 20007 896 inlägg
#7
SELECT fld1, fld2, (fld3/fld4) AS divided 
FROM tbl 
ORDER BY divided

Men din huvudfråga bör ju fungera likväl. Se bara till att fälten C1 och C2 är av numerisk typ.

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)