WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   förenkla en query (https://www.wn.se/forum/showthread.php?t=25100)

Cos 2007-11-16 22:11

Halojj.

Finns det ett enkelt sätt att korta ner denna query på något sätt? Vad är för och nackdelarna med att köra den på detta sätt?

Kod:

$query = mysql_query("

SELECT * FROM {$table_prefix}topics
WHERE forum_id != '13' AND forum_id != '11' AND forum_id != '12' AND forum_id != '58' AND forum_id != '46' AND forum_id != '45' AND forum_id != '57' AND forum_id != '59'
AND topic_approved = '1'
ORDER BY topic_id
DESC LIMIT $limit_matches");

Det jag syftar på är "WHERE forum_id". Plockar bort dessa forum id's ifrån queryn för att de ej ska visas. Men kommer detta belasta servern tyngre på något sätt?

martine 2007-11-16 22:21

Citat:

Originally posted by Cos@Nov 16 2007, 23:11
Det jag syftar på är "WHERE forum_id". Plockar bort dessa forum id's ifrån queryn för att de ej ska visas. Men kommer detta belasta servern tyngre på något sätt?
Använd NOT IN()

Kod:

SELECT * FROM {$table_prefix}topics
WHERE forum_id NOT IN(13,11,12,58,46,45,57,59) AND topic_approved = 1
ORDER BY topic_id
DESC LIMIT $limit_matches

Och andvänd inte ' runt siffror om de inte är sparade som strängar, den slöar ner query:n.

allstars 2007-11-18 12:49

Under förutsättning att det är en version av Mysql som är minst 4.1.
< 4.0 stödjer inte IN.

MSSQL kan jag inte riktigt vad den stödjer.


Alla tider är GMT +2. Klockan är nu 13:59.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson