phpbar.de logo

Mailinglisten-Archive

AW: WHERE Abfrage

AW: WHERE Abfrage

Fabian Martin mysql-de_(at)_lists.bttr.org
Sat, 20 Apr 2002 14:51:38 +0200


Hi,
> Ich habe folgende Abfrage:
>
> select * from table where (forum_id = '20' OR forum_id ='22' OR forum_id
> ='23' OR forum_id ='24 OR forum_id ='27' usw.)
>
> Das ganze sind 30 forum_id, immer beginnend mit forum_id = '??' OR.
> Kann ich das ganze denn nicht irgendwie vereinfachen. Die ganzen Zahlen
> stehen in PHP in einem Array.
> Irgendwie so: where forum_id = Array();
> Das Problem ist folgendes, dass in der Tabelle doppelte Einträge vorhanden
> sind und ich deshalb die Ursprungstabelle mit dem forum_ids nicht mit
> LEFT_JOIN verbinden kann.
> So ist das kein Problem. Wenn ein Wert doppelt auftaucht, setzt
> ich einfach
> den Wert hinter dem vorigen Wert im entsprechenden Array.

Warum kompliziert wenn es auch einfach geht.

SELECT * FROM table WHERE from_id IN (20,22,23,24,27 etc.)

Da die IDs in einem Array stehen musst du Sie vorher mit
implode(",",$forum_ids)
durchlaufen, ggf. solltest du noch ein array_unique durchführen, um alle
doppelten IDs
rauszufiltern.

Links:
http://www.php.net/manual/en/function.array-unique.php
http://www.php.net/manual/en/function.implode.php

MfG
Fabian Martin

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive