【问题标题】:Searching Database PHP Mysql搜索数据库 PHP Mysql
【发布时间】:2010-10-09 15:10:41
【问题描述】:

我知道大多数时候人们只是做一个

LIKE '%$search_query%'

但事实是,在我的情况下,有人可能正在搜索类似的东西

那头牛很肥

现在,这件事在我的数据库中,我不会将它完全存储为“牛很胖”,而是将其存储为“肥牛”之类的东西,所以使用

LIKE '%$search_query%'

没用。

谁能像我解释的那样为我指明正确的方向,以有效地搜索我的数据库?

谢谢

【问题讨论】:

    标签: php mysql database search


    【解决方案1】:

    您正在寻找full-text search,默认最小字长默认为4,因此不适用于您的示例。

    在布尔模式中包含“sheep”的记录中搜索“house”和“barn”的示例:

    SELECT * FROM table WHERE MATCH (columnname)
          AGAINST ('+house +barn -sheep' IN BOOLEAN MODE);
    

    或者,自然语言可能更适合完整的句子。

    不过,全文搜索是一个相当复杂的领域,有许多注意事项和陷阱。值得仔细阅读手册。

    【讨论】:

    • 好吧,我得到了它的工作,但现在出于某种奇怪的原因,我遇到了 1 个问题。当我搜索“喜欢”(应该是)时,它不会返回任何结果,但它会为其他所有内容返回它们。会不会因为它在mysql查询字符串中常用而忽略它?
    • @Belgin 这就是为什么我需要阅读陷阱手册的原因:) 请参阅mySQL Stopwords
    猜你喜欢
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 2014-06-02
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    相关资源
    最近更新 更多