【问题标题】:MYSQL: Like Method, Similar Words - But Don't Show the Searched WordMYSQL:Like 方法,相似词 - 但不显示搜索词
【发布时间】:2010-03-30 16:34:48
【问题描述】:

其实我用这个方法来显示搜索请求的相似词..

$query = "SELECT * FROM searches WHERE Query LIKE '%$search%' ORDER BY Query"; 

如果有人搜索“nelly”,它会在数据库中查找相似的词

“nelly furtado, nelly ft. kelly”...

但我不想显示搜索到的单词..

示例:您搜索过 nelly - 也可以试试这个:nelly、nelly furtado、nelly ft.、

粗体字不应再次出现,因为它是搜索过的字.. 是否有 MATCH AGAINST 的方法?谢谢!

【问题讨论】:

    标签: mysql sql-like


    【解决方案1】:

    你就不能像...WHERE Query LIKE "%$search%' AND Query <> '$search'...那样做吗?

    不区分大小写:Query LIKE "%$search%' AND STRCMP(Query, '$search') == 0

    【讨论】:

    • @Leniel Macaferi,我认为这可能是由于区分大小写。我已更新查询以反映不区分大小写的搜索。
    • 抱歉。有用。我输入了错误的查询。我试过的查询是这样的: SELECT * FROM 搜索 WHERE search LIKE '%nelly%' ORDER BY search and search 'nelly';呵呵呵呵:)
    【解决方案2】:

    Leniel - 可能是由于大写,搜索词仍然显示,即*LIKE "nelly"* 会找到"nelly""Nelly""NeLlY" 等,而* <> "nelly"* 只会 从结果中排除"nelly"(小写)。

    也许 NOT LIKE 会产生更好的结果,或者 str_to_lower 在您的输入离开 PHP 之前将其与 LOWER(column_name) 进行比较以匹配所有情况。

    【讨论】:

      猜你喜欢
      • 2018-12-18
      • 2013-04-26
      • 2013-12-19
      • 1970-01-01
      • 2011-06-25
      • 2011-01-26
      • 1970-01-01
      • 2018-10-24
      • 1970-01-01
      相关资源
      最近更新 更多