> 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