List:German« Previous MessageNext Message »
From:Bert Döse Date:May 24 2011 2:35pm
Subject:RE: Spalten zusammenfügen CONCAT() und durchsuchen
MATCH()
View as plain text  
Hallo Hartmut und Liste,

danke für deine Erklärung.
Wenn die Beschreibung "Das Auto der Marke Test ist sehr schön." mit der Farbe
"grün" verknüpft ist und nach "Auto grün" gesucht
wird, dann wird allerdings kein Datensatz gefunden, deswegen mein Gedanke mit dem CONCAT.

Grüße
Bert

-----Original Message-----
From: Hartmut Holzgraefe [mailto:hartmut.holzgraefe@stripped] 
Sent: Tuesday, May 24, 2011 3:56 PM
To: Bert Döse
Cc: ML MySQL dt.
Subject: Re: Spalten zusammenfügen CONCAT() und durchsuchen MATCH()

On 05/24/2011 12:36 PM, Bert Döse wrote:

> SELECT id, CONCAT(beschreibung,farbe) AS suchein 
> 
> FROM tabelle1 
> LEFT JOIN tabelle2 ON tabelle1.id=tabelle2.fid				
> 
> WHERE 
> MATCH (suchein) AGAINST ('$begriffe' IN BOOLEAN MODE)
> ---
>
> Nur leider bekomme ich bei diesem Beispeil den Fehler
> Unknown column 'suchein' in 'where clause'.
> 
> Wo liegt mein Denkfehler. Wie kann ich diesen beheben? Ist meine Lösung
> performant oder wie löse ich dies besser?

der BOOLEAN MODE funktioniert zwar im Prinzip auch ohne
FULLTEXT Index, aber trotzdem nur auf 'echten' Spalten
und nicht auf berechneten Ergebnissen.

Da die zu durchsuchenden Spalten in verschiedenen Tabellen
liegen müssen zwei MATCH-Aufrufe verknüpft werden:

     SELECT ...
       FROM tabelle1 t1
  LEFT JOIN tabelle2 t2
         ON t1.id = t2.fid				
      WHERE MATCH (t1.beschreibung) AGAINST ('$begriffe' IN BOOLEAN MODE)
        AND (t2.id = NULL OR MATCH (t2.farbe) AGAINST ('$begriffe' IN
BOOLEAN MODE)

-- 
hartmut

Thread
RE: Spalten zusammenfügen CONCAT() und durchsuchen MATCH()Bert Döse24 May