webForumDet fria alternativet

ORDER BY med uträkning

Databaser & SQLur Databashanterare & SQL

5 svar · 263 visningar · startad av ironhead

Medlem sedan mars 20011 346 inlägg
Frågan#1

Hej!

Jag vill kunna köra ORDER BY på en uträkning...

Jag har en tabell med bl.a. fält som rating (poäng) och votes (antal röstningar)...nu skulle jag vilja skiva SQL-satsen såhär:

SELECT * FROM movies ORDER BY (rating/votes) DESC LIMIT 10

..men det funkar ju inte...hur ska man kunna göra beräkningen så att man kan sortera på de 10 filmer som fått högst medelbetyg?

Medlem sedan dec. 200012 464 inlägg
#2

men det funkar ju inte.

Vad menar du med det?

Det är inget syntaktiskt fel i den frågan.

Flyttas från Mysql

Medlem sedan mars 20011 346 inlägg
#3

Jag får inget resultat alls....
inte en post skrivs ut

Medlem sedan mars 20032 667 inlägg
#4

Använder denna fråga till MySQL 3.58 och den fungerar utmärkt:

$strSQL = "SELECT Id, Hemsida, Desciption, Hit, sumBetyg, antalVotes 
FROM link WHERE sumBetyg > 0 AND antalVotes > 0 
ORDER BY (sumBetyg +0.0)/ (antalVotes+0.0) DESC 
LIMIT 15";
Medlem sedan dec. 200012 464 inlägg
#5

Om du tar bort order by, blir det någon skillnad?

Kan votes vara 0? I så fall

SELECT * FROM movies ORDER BY (rating/case when votes = 0 then 1.0 else votes end) DESC LIMIT 10

Men då tycker man (i alla fall jag) att du borde ha fått ett fel från Mysql.

Medlem sedan mars 20011 346 inlägg
#6

Nu funkar det bra...tack LarsG ;)
Det var värdet 0 (noll) som ställde till det....men dock inget felmeddelande :q

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