0

サイトに検索を追加したいと考えています。ビデオゲームからのチャレンジのデータベースがあります。各課題にはタイトルと説明があります。少なくとも説明を検索できるようにしたいのですが、可能であれば両方を検索できます。MATCH() AGAINST() を使用できるようにテーブルを設定しましたが、単数形または複数形の単語に問題があります。

たとえば、「アシスト」という単語は複数のチャレンジに表示されますが、ユーザーが「アシスト」と入力しても何も得られません。その機能を追加する方法はありますか? 考えられることはすべて試しましたが、これまでのところ何もうまくいきませんでした。

更新:最近、MATCH AGAINST について学んだばかりなので、私の場合にそれを使用する「正しい」方法がわかりません。私が言ったように、私はテーブルに複数回現れるdescription上記の単語の例を使用して、という列を持つテーブルを持っています、私はこのクエリを使用します:assists

SELECT * FROM challenges WHERE MATCH(description) AGAINST('assists')

それを実行したところ、10行が返されました。に変更するとassist、何も得られません。

4

2 に答える 2

0

たぶん、MySQLのSOUNDEX()関数を使用できます。

SELECT
  id,
  title
FROM products AS p
WHERE p.title SOUNDS LIKE 'Shaw'

// This wil match 'Saw' etc.

これはあなたにも当てはまるかもしれませんし、彼は複数形で取るでしょう

于 2011-04-30T15:01:18.547 に答える
0

あなたがやろうとしていることの要点を見逃しているかもしれませんが、次のように LIKE マッチをしないのはなぜですか:

SELECT * FROM challenges WHERE description LIKE "%assist%";

これは、「assist」だけでなく「assist」を含むものと一致します。もちろん、「assistant」や「assistance」にも一致しますが、これはあなたが望むものではないかもしれません...

于 2011-05-01T15:57:18.317 に答える