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