Avatar billede idiotbarn Nybegynder
28. september 2008 - 11:35 Der er 3 kommentarer og
1 løsning

"Variabler" i MySQL

Hej
Jeg har tænkt på, om følgende er muligt på nogen måde:

Select Id, (T1*T2*T3*T4*T5) AS Result from tbl where Result>10

Tricket skulle være, at man kun skal regne "Result" ud én gang, da flg virker som om temmeligt uoptimeret:

Select Id, (T1*T2*T3*T4*T5) AS Result from tbl where (T1*T2*T3*T4*T5)>10 AND (T1*T2*T3*T4*T5)<20

Jeg har kigget lidt på user variables:
http://dev.mysql.com/doc/refman/5.0/en/user-variables.html
men kan ikke få det til at fungere ordentligt.

Bruger mysql en cache således det ikke gør det langsommere at gentage den samme udregning flere gange, bliver jeg nød til at bruge stored procedures, eller er der en anden måde at gøre det på?
Avatar billede hmortensen Nybegynder
28. september 2008 - 11:48 #1
Hvad med:
SELECT Id, (T1*T2*T3*T4*T5) AS Result FROM tbl HAVING Result BETWEEN 10 AND 20
Avatar billede idiotbarn Nybegynder
28. september 2008 - 14:28 #2
Får en fejl:
"Unknown column 'Result'"
(Også den jeg får ved det andet)
Avatar billede idiotbarn Nybegynder
28. september 2008 - 14:30 #3
Der var jeg for hurtig. Det kan man godt. Where skal åbentbart være en kolonne, hvor having ikke behøves at skulle være det.

så kan jeg også bruge Having Result = 0
Takker... ligger du et svar?
Avatar billede hmortensen Nybegynder
28. september 2008 - 18:42 #4
Det var så lidt
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