Volltextsuche: ERROR 1064 (42000): You have an error

Volltextsuche: ERROR 1064 (42000): You have an error

am 09.08.2007 11:59:36 von Christian Aigner

Ich hatte gerade ein seltsames Erlebnis:

Zuerst das funktionierende Beispiel:

SELECT COUNT(*)
FROM docs
WHERE
MATCH(doc_content)
AGAINST('Vitamine' IN BOOLEAN MODE);

liefert:
2 (was stimmt)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SELECT COUNT(*)
FROM docs
WHERE
MATCH(doc_content)
AGAINST('Vitamine' IN NATURAL LANGUAGE MODE);

liefert:
ERROR 1064 (42000): You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near 'NATURAL LANGUAGE MODE ) at line 5
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Bitte, was ist da falsch? So steht's doch auch in der Doku.
Der Fehler deutet auf die Verwendung eines reservierten Wortes hin.
"NATURAL" wäre so eines. Aber ich versteh im Moment den Zusammenhang
nicht, wieso das hier einen Fehler produziert.

mfg,
Christian

Ich verwende
PHP: Version 5.2.3 (Win32)
MySQL: 5.0.37-community-nt (Win32)

Re: Volltextsuche: ERROR 1064 (42000): You have an error

am 09.08.2007 12:29:34 von Claus Reibenstein

Christian Aigner schrieb:

> AGAINST('Vitamine' IN NATURAL LANGUAGE MODE);
>
> liefert:
> ERROR 1064 (42000): You have an error in your SQL syntax; check the
> manual that corresponds to your MySQL server version for the right
> syntax to use near 'NATURAL LANGUAGE MODE ) at line 5
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Bitte, was ist da falsch? So steht's doch auch in der Doku.

Wo? In welcher Doku?

Laut Kapitel 12.7 "MySQL-Volltextsuche" meines MySQL 5.1
Referenzhandbuchs kennt AGAINST() nur die Alternativen IN BOOLEAN MODE
und WITH QUERY EXPANSION. Von NATURAL LANGUAGE MODE steht da nix.

Gruß. Claus

Re: Volltextsuche: ERROR 1064 (42000): You have an error

am 09.08.2007 12:46:38 von Christian Aigner

Am Thu, 09 Aug 2007 12:29:34 +0200, schrieb Claus Reibenstein
<4spammersonly@web.de>:

> Christian Aigner schrieb:
>
> > AGAINST('Vitamine' IN NATURAL LANGUAGE MODE);
> >
> > liefert:
> > ERROR 1064 (42000): You have an error in your SQL syntax; check the
> > manual that corresponds to your MySQL server version for the right
> > syntax to use near 'NATURAL LANGUAGE MODE ) at line 5
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >
> > Bitte, was ist da falsch? So steht's doch auch in der Doku.
>
> Wo? In welcher Doku?
>
> Laut Kapitel 12.7 "MySQL-Volltextsuche" meines MySQL 5.1
> Referenzhandbuchs kennt AGAINST() nur die Alternativen IN BOOLEAN MODE
> und WITH QUERY EXPANSION. Von NATURAL LANGUAGE MODE steht da nix.
>
> Gruß. Claus

ich hab hier nachgelesen:

http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

Bin aber gerade zu der Erkenntnis gekommen, daß ich ja "nur" die
Version 5.0.37 installiert habe. Daher geht's nicht.

Somit ist das Problem kein Problem mehr. :-)

LG,
Christian