Festfagbogen.dk <mail@festfagbogen.dk> wrote:
> Et sikkert simpelt spørgsmål hvis man ved det
>
> Hvis man har disse 4 data i en tabel ex.
> FIELD1 FIELD2 FIELD3
> x x x
> x
> x
> x
>
> Hvis man så i en mysql query skriver ex. WHERE FIELD1='x' AND FIELD2='x'
> OR FIELD3='x'
> finder den den først hvor alle har kryds og den sidste fordi felt 1 eller 2
> SKAL indeholde x eller også skal felt 3 indeholde x
>
> Man hvad nu hvis det skal være sådan at felt 1 SKAL indeholde x og bare
> felt 2 eller 3 skal indeholde x
> Altså AND FIELD1='1' AND FIELD2eller3='x'
> Så den vælger kun den første.
>
>
> Kan man det ?
Taler du om performance eller hvad?
Operatorhierarkiet er det sædvanlige:
a and b or c = (a and b) or c ≠a and (b or c).
Den finder således alle hvor felt3 = 'x', og derudover alle som i
felterne felt1 og felt2 har samme værdi. Dubletter optræder naturligvis
ikke, da der er tale om en relationsdatabase, og tabellerne derfor er
relationer [mængder af tupler / poster / rækker]. {a, b} union {a, c} er
jo også {a, b, c}, ikke {a, b, b, c}.
--
Per Erik Rønne
http://www.RQNNE.dk