Mailinglisten-Archive |
Hallo Nico, abgesehen von dem durch fehlende Joins verursachten Kreuzprodukt, finde ich folgendes merkwürdig: U.a. steht in Deinem Statement: select ...... from .... where art.name LIKE '%stylus%' AND art.name LIKE '%tinte%' AND art.name LIKE '%Epson%' ; d.h. in dem Feld art.name eines einzigen DS müssen die Worte Epson, stylus und tinte vorkommen und zwar in beliebiger Reihenfolge. Wenn die Reihenfolge nicht beliebig ist, könntest Du ja auch z.B. where art.name LIKE '%Epson%stylus%tinte' schreiben. Oder gehört evtl. an diese Stelle auch ein OR? Gleiches gilt für art.detail und hg.name. Wenn Du nicht weiterkommst, schick mal Tabellenstrukturen nebst Daten und etwas genauerer Beschreibung des Ziels dieses Statements. Du willst ja nicht immer nur nach Epson Druckern suchen? Ich nehme mal an: Internetshop und 3 Felder im Suchformular? Viele Grüße Sabine Nico Haberzettl wrote: > > Hallo Liste. > ich hab ein "kleines" Problem mit der folgenden Query... > wenn ich genau diese ausfuhre, bekomme ich zwar die > gewunschten Datensatze (Tintenstrahldrucker und Tintenpatronen), > auch ein paar, die nur wie folgt in das Schema passen: > > Hersteller: Epson bzw. Epson ist im Text enthalten > Ugruppe : z.B. Netzwerkprodukte > Hgruppe : z.B. Druckerzubhor > > Das passt aber nicht auf AND Bedingungen... > Ich geh mal davon aus, da? der Fehler in meiner > Logik liegt, darum bitte ich euch, mir > eure zu leihen, wenigstens mal kurz :) > > Ubrignes: wenn ich die Suche in > hg.name und ug.name jeweils rauslosche > bekomm ich genau die Ergebnisse die > ich brauche. > --------------------------------------- > SELECT DISTINCT > art.id_artikel, > art.name as artname > > FROM > shp_artikel as art, > shp_ugruppe as ug, > shp_hgruppe as hg > > WHERE > ( ( art.name LIKE '%stylus%' OR > art.detail LIKE '%stylus%' OR > hg.name LIKE '%stylus%' OR > ug.name LIKE '%stylus%' ) > > AND > > ( art.name LIKE '%tinte%' OR > art.detail LIKE '%tinte%' OR > hg.name LIKE '%tinte%' OR > ug.name LIKE '%tinte%' ) ) > > AND > > ( art.name LIKE '%Epson%' OR > art.detail LIKE '%Epson%' OR > art.id_hersteller = '270' ) > > AND > > ( art.gueltig > date_add(now(),interval 2 day) ) > > GROUP BY > art.id_artikel > --------------------------------------------- > Findet da jemand den og Fehler ? > Ich nicht :(. > > war nett, wenn mir jemand helfen konnte > mfg > Nico > > --- > Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter > -->> http://www.4t2.com/mysql --- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive