List:German« Previous MessageNext Message »
From:Cybot Date:August 6 2003 3:37pm
Subject:Re: WG: Syntax Fehler bei Fulltext
View as plain text  
Martin Lehnert wrote:

> Das geht aufgrund der Version nicht, mysql in der 3.23.52 unterstützt keine
> booleschen Suchmuster mit +
> 
> Du musst also die Abfragen mit AND vernknüpfen, um dieses ohne +
> hinzubekommen. Habs auch probiert, geht nich.

was geht nicht?

deshalb bleibt immer noch das problem das ein AND im SELECT immer nur 1 
oder 0 ergeben kann, und in verbdinung mit deinem WHERE kann also in 
dieser spalte immer nur eine 1 stehen in deinen ergebniss-sätzen!

weil AND eine logische verknüpfung darstellt!

((Match (`content`,`content_titel`,`description`) AGAINST ('foo'))
  and
(Match (`content`,`content_titel`,`description`) AGAINST ('bar')))
as `score` ergibt also immer 0 oder 1

und da WHERE 0 nicht angezeigt wird hast du _immer_ 1 dort stehen!

verstehst du jetzt worin das problem deines querys liegt?

wenn du die beiden werte addieren willst musst du + nehmen, oder du 
lässt sie einfach in zwei spalten ausgeben

>>meine SQL-Abfrage soll mit n Wörtern eine Suche in einem Fulltextbereich
>>durchführen.
>>Kommt auch keine Fehlermeldung, ich erhalte als score aber immer den Wert
> 
> 1.
> 
>>Die Wörter dich ich Suche sind keine Stopwörter, die gefunden ids, sind
>>korrekt.
>>
>>Hier die Abfrage:
>>
>>SELECT `id`,((Match (`content`,`content_titel`,`description`) AGAINST
>>('foo')) and (Match (`content`,`content_titel`,`description`) AGAINST
>>('bar'))) as `score` FROM `content` WHERE `mid` = '5' and `lid` = '2' and
>>((Match (`content`,`content_titel`,`description`) AGAINST ('foo')) and
>>(Match (`content`,`content_titel`,`description`) AGAINST ('bar'))) order
> 
> by
> 
>>`time_event` desc, `time_edit` desc limit 0 , 5
>>
>>Wie gesagt, kommt kein Mysql-Fehler, alte MySQL 3.23.52 auf dem die
> 
> Abfrage
> 
>>stattfinden soll.
> 
> 
> 
> ja wiel du ein AND in deinem select hast das ergibt immer  0 oder 1 
> (wahr oder flasch) und nicht 0,123 irgendwas!
> 
> außerdem wäre doch ein MATCH .. AGAINST besser oder?
> 
>    SELECT `id`,
>           MATCH (`content`,`content_titel`,`description`)
>            AGAINST ('foo bar')
>            AS `score`
>      FROM `content`
>     WHERE `mid` = '5'
>       AND `lid` = '2'
>       AND Match (`content`,`content_titel`,`description`)
>            AGAINST ('foo bar')
> ORDER BY `time_event` desc,
>           `time_edit` desc
>     LIMIT 0 , 5
> 
> wenn beide begriffe zwingend vorhanden sein sollen dann muss ein plus 
> vor die begriffe ...AGAINST('+foo +bar')...


-- 
Sebastian Mendel

www.sebastianmendel.de
www.tekkno4u.de
www.nofetish.com

Thread
WG: Syntax Fehler bei FulltextMartin Lehnert6 Aug
  • Re: WG: Syntax Fehler bei FulltextCybot6 Aug