1

ほぼ 10 年前のプロジェクトで、HTML エンティティを使用して MYSQL データベースに発音記号をエンコードしました。今日ではそのすべてが奇妙に思えますが、それはそうかもしれません。このデータベースを使用するアプリケーションは検索機能を実装していますが、検索対象の文字列に分音記号が含まれていると検索が正しく機能しないという問題があります。のように:"für"

簡略化された MySQL クエリは次のようになります。

SELECT kunstwerk. * , kategorie.published, kategorie.bezeichnung
FROM kunstwerk
LEFT JOIN kategorie ON SUBSTRING( kategorie, 1, 7 ) = kategorie_Nr
WHERE published = 'true'
AND published_veto <> 'false'
AND MATCH (titel_DE)
AGAINST (
  '+f&uuml;r '
  IN BOOLEAN MODE
)
ORDER BY kategorie

My problem is that it matches anything that contains "&uuml;" regardless of the surrounding characters in "f&uuml;r".

What is the reason for that?

4

1 に答える 1

1

ここで何が起こるかは 100% わかりませんが、mySQL は明らかに&および;制御文字を詰まらせています。(最終的にはそのuuml部分だけを探しているのではないかと思います)。

とにかく、用語を引用符で囲むと役立ちます。

AGAINST (
  '+"f&uuml;r" '
  IN BOOLEAN MODE
)
于 2013-02-06T21:11:34.427 に答える