Mailinglisten-Archive |
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