WHERE med OR?

Tags:    databaser

Hejsa

Jeg har følgende SELECT:

$result = mysql_query("SELECT * FROM ibf_topics WHERE forum_id<>16 ORDER BY tid desc LIMIT 12");

Altså - finde alt, undtagen fra forum_id 16. Dette virker fint nok, MEN.. hvis nu jeg heller ikke vil have noget fra forum_id 17 med, hvordan tilføjer jeg så 17?

Mvh
Gunnar



$result = mysql_query("SELECT * FROM ibf_topics WHERE forum_id!=16 AND forum_id!=17 ORDER BY tid desc LIMIT 12");

det bør virke som du vil have det til

[Redigeret d. 06/03-05 22:04:27 af Anders Balmer]



$result = mysql_query("SELECT * FROM ibf_topics WHERE forum_id!=16 AND forum_id!=17 ORDER BY tid desc LIMIT 12");

det bør virke som du vil have det til

[Redigeret d. 06/03-05 22:04:27 af Anders Balmer]
Og det gjorde - whuhuuu! Tak for hjælpen :-)

Gunnar



$result = mysql_query("SELECT * FROM ibf_topics WHERE forum_id!=16 AND forum_id!=17 ORDER BY tid desc LIMIT 12");

det bør virke som du vil have det til

[Redigeret d. 06/03-05 22:04:27 af Anders Balmer]


Kan du fortælle hvorfor det så ikke virker omvendt, dvs. med:

$result = mysql_query("SELECT * FROM ibf_topics WHERE forum_id=16 AND forum_id=17 ORDER BY tid desc LIMIT 12");

?

Mvh
Gunnar



"Hvor forum_id er lig med 16 OG lig med 17" - fordi forum_id ikke kan have to værdier.

Du skal sige "WHERE forum_id='16' OR forum_id='17'"
--
Ronni Egeriis



"Hvor forum_id er lig med 16 OG lig med 17" - fordi forum_id ikke kan have to værdier.

Du skal sige "WHERE forum_id='16' OR forum_id='17'"
--
Ronni Egeriis


Men hvis nu det ikke skal være enten den ene eller den anden, men dem begge?

Mvh
Gunnar

[Redigeret d. 07/03-05 09:40:53 af Gunnar Kristiansen]



"Hvor forum_id er lig med 16 OG lig med 17" - fordi forum_id ikke kan have to værdier.

Du skal sige "WHERE forum_id='16' OR forum_id='17'"
--
Ronni Egeriis


Men hvis nu det ikke skal være enten den ene eller den anden, men dem begge?

Mvh
Gunnar

[Redigeret d. 07/03-05 09:40:53 af Gunnar Kristiansen]


Så bruger du AND eller laver den om til en IN betingelse.

AND:
select * from table where id = '16' AND id = '17'

IN:
select * from table where id IN (16,17,18,20,200,205)



t