or and or

Databaser & SQL

3 svar · 193 visningar · startad av FlashX

Medlem sedan nov. 19991 033 inlägg
Trådstart#1

Är lite förbryllad över hur OR fungerar.
Skiljer det sig i sättet att använda än AND?
Har jag flera OR efter varandra så blir det förvisso inga fel men svaret som genereras stämmer inte med det som borde genereras.

Jag använder OR i en sorteringsfunktion och varje OR går till en ny kolumn och det verkar bara vara den sist angivna som skickar tillbaka rätt svar (dom andra lopar svaret flera ggr.).
Exempel:

$results = mysql_query("SELECT * 
FROM id_bildbank, id_category, id_products, id_designers, bildbank 
WHERE bildbank_id='$bildtyp' 
OR category_id='$produktfamilj' 
OR products_id='$produktnamn' 
OR designers_id='$designer' 
AND bildbank.designers_id=id_designers.ID 
AND bildbank.category_id=id_category.ID 
AND bildbank.products_id=id_products.ID 
AND bildbank.bildbank_id=id_bildbank.ID", DB);

fungerar tillfredsställande så länge det innehåller en OR eller om jag väljer att sortera från $designer (ligger ju sist) men jag vill kunna sortera från andra kolumner i tabellen.
Är det så att man måste fixa en ny select för varje eller har jag fel syntax helt enkelt?

Medlem sedan feb. 20012 412 inlägg
#2

Hej!

OR och AND har olika inbördes ordningar med olika prioritet. Du får lägga till lite paranteser skulle jag tro.

Mvh Jörgen :)

Medlem sedan juni 200032 967 inlägg
#3

Prexis! Det känns som att det borde se ut så här:

$results = mysql_query("SELECT * 
FROM id_bildbank, id_category, id_products, id_designers, bildbank 
WHERE (bildbank_id='$bildtyp' 
OR category_id='$produktfamilj' 
OR products_id='$produktnamn' 
OR designers_id='$designer' )
AND bildbank.designers_id=id_designers.ID 
AND bildbank.category_id=id_category.ID 
AND bildbank.products_id=id_products.ID 
AND bildbank.bildbank_id=id_bildbank.ID", DB);

Mvh,

Medlem sedan nov. 19991 033 inlägg
#4

Visst ska det vara så :)

258 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)