phpbar.de logo

Mailinglisten-Archive

Logik Problem in Query :(

Logik Problem in Query :(

Sabine Richter mysql-de_(at)_lists.bttr.org
Fri, 28 Jun 2002 18:03:18 +0200


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