MySQL MATCH-AGAINST复数词?

时间:2011-04-30 14:42:47

标签: php mysql match against

我想在我的网站上添加搜索内容。我有一个视频游戏挑战数据库。每个挑战都有一个标题和描述,我希望能够至少搜索描述,但如果可能的话。现在,我已经设置了表格,以便我可以使用MATCH()AGAINST(),但是我遇到的问题可能是单数或复数。

例如,单词“assists”出现在多个挑战中,但如果用户键入“assist”,他将无法获得任何内容。有什么方法可以添加这个功能吗?我已经尝试了所有我能想到的东西,但到目前为止还没有任何工作。

更新:我刚才刚刚了解了MATCH AGAINST,所以我不确定在我的情况下使用它的“正确”方式。就像我说的,我有一个名为description的列的表,使用上面的示例单词assists,它在表中多次出现,我将使用此查询:

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

我刚刚执行了它,它返回了10行。如果我将其更改为assist,我什么也得不到。

2 个答案:

答案 0 :(得分:0)

也许你可以使用MySQL的SOUNDEX()函数。

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

// This wil match 'Saw' etc.

我认为这也可能适用于您,并且他将采用复数形式

答案 1 :(得分:0)

我可能会忽略你想要做的事情的重点,但为什么不做这样的LIKE比赛:

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

这将匹配任何包含“助手”和“助攻”的内容。当然它也会匹配“助手”和“援助”,这可能不是你想要的......

相关问题