【问题标题】:MATCH AGAINST fails to find resultsMATCH AGAINST 找不到结果
【发布时间】:2018-05-10 10:35:06
【问题描述】:

我正在尝试使用 MATCH...AGAINST 在 PHP + MySQLi 中开发一个搜索引擎,但我发现了一些非常奇怪的东西:如果我运行下一条指令,则不会返回任何结果

SELECT * FROM `conditions` WHERE MATCH(`desc`) AGAINST ('*zero*')

但实际上表格中有一行是 desc="zero code"

这里奇怪的是,如果我将字符串“零代码”替换为“zerx 代码”,然后搜索“zerx”而不是“零”,则返回结果。

谁能告诉我可能是什么问题?

提前致谢!

【问题讨论】:

  • '*zero*' 或仅'zero' ?
  • 我已经尝试了所有可能的组合 'zero'、'zero*'、'zero'、'*zero' 并且没有任何区别
  • “零”是什么关键字吗?
  • 但我认为它是一个字符串。如果它被认为是关键字,我应该如何转义它?
  • 如果我们使用quotdouble quot 它不应该被视为关键字。 as this link .想想你的代码/语句出了什么问题

标签: php mysql mysqli


【解决方案1】:

试试这个

SELECT * FROM `conditions` WHERE MATCH(`desc`) AGAINST ('+zero')

refer here

【讨论】:

    【解决方案2】:

    尝试不同的词:)

    MySQL 有一个 list of words,它没有索引,并且“零”在该列表中。

    【讨论】:

    • 哦,太好了....那么,有没有办法强制或逃避那个词或什么?我确实需要搜索那个词,其实很重要,但我想避免使用 LIKE '%%'。顺便说一句:非常感谢!
    • 您可以按照the manual中的说明更改列表。之后,您将需要重建索引。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    相关资源
    最近更新 更多