Avatar billede Slettet bruger
26. september 2002 - 10:37 Der er 2 kommentarer og
1 løsning

sortere efter en karakter der først skal regnes ud

Hej!

Jeg vil gerne sortere et udtræk fra MySQL, efter en karakter.

Men problemet er at man kan give karakter i 5 kategorier, og disse gemmes i databasen i 5 forskellige felter.

Strukturen ser således ud:

CREATE TABLE siterater_websites (
  id int(10) unsigned NOT NULL auto_increment,
  kar_design int(10) unsigned default '0',
  kar_kvalitet int(10) unsigned default '0',
  kar_teknik int(10) unsigned default '0',
  kar_usability int(10) unsigned default '0',
  kar_indhold int(10) unsigned default '0',
  stemmer_design int(10) unsigned default '0',
  stemmer_kvalitet int(10) unsigned default '0',
  stemmer_teknik int(10) unsigned default '0',
  stemmer_usability int(10) unsigned default '0',
  stemmer_indhold int(10) unsigned default '0',
  PRIMARY KEY  (id)
) TYPE=MyISAM;

Der er altså et felt for hver kategori der indeholder karakteren, og et felt der indeholder antal karakterer.

Et eksempel på en karakter kan være 3 stemmer; 7, 9 og 4. Det vil sige at der ligger 3 i feltet med antal stemmer, og 20 i feltet med karakter.

Det må altså blive noget i stil med

ORDER BY ((kar_design + kar_kvalitet + kar_teknik + kar_usability + kar_indhold) / (stemmer_design + stemmer_kvalitet + stemmer_teknik + stemmer_usability + stemmer_indhold))

Men hvordan laver man det rent praktisk? Og undgår division med 0?
Avatar billede lasse_buck Nybegynder
26. september 2002 - 12:31 #1
Hvis summen af stemmer er 0, så dividerer man bare med 1 vha IF:
...IF(nævnerudtryk=0, 1, nævnerudtryk)...
Avatar billede lasse_buck Nybegynder
26. september 2002 - 12:32 #2
ORDER BY ((kar_design + kar_kvalitet + kar_teknik + kar_usability + kar_indhold) / IF(stemmer_design + stemmer_kvalitet + stemmer_teknik + stemmer_usability + stemmer_indhold = 0, 1, stemmer_design + stemmer_kvalitet + stemmer_teknik + stemmer_usability + stemmer_indhold))
bliver det vist...
Avatar billede Slettet bruger
26. september 2002 - 17:11 #3
super...det kom til at virke med din løsning!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester