gpt4 book ai didi

php - MySql REGEXP 通过包含特定单词进行多单词搜索

转载 作者:行者123 更新时间:2023-11-29 10:15:39 24 4
gpt4 key购买 nike

我有一个包含关键字列的数据库

需要根据用户所做的查询来搜索数据库。

每个关键字末尾都有“outlet”一词,但用户只会搜索“gul ahmad”而不是“gul ahmad out”。为此,我使用了以下查询,一切正常,得到了结果,并找到了完整的结果“Gul Ahmad Outlet”

$sql = "SELECT keywords FROM table WHERE keywords REGEXP '([[:blank:][:punct:]]|^)$keyword([[:blank:][:punct:]]|$)'";

现在我有两个问题1. 如果单词“outlet”位于查询单词之间,则找不到该单词。例如,如果用户搜索“kohistan lahore”,数据库中有一个名为“kohistan outlet lahore”的 socket ,但在数据库中找不到该关键字,并且返回空。如何告诉数据库在开头或结尾处包含“outlet”以查找并匹配结果。

  • 如果某些用户搜索“nabeel'soutlet”数据库有它,但由于“'”,此查询返回空而没有任何结果。
  • 最佳答案

    您可以做的是仅将列值与第一个单词相匹配您的搜索表达式(即 nabeel 的导出)。我相信这样您将能够覆盖您的所有场景。

    select 
    *
    from `outlets`
    where REPLACE(`name`,'\'','') regexp SUBSTRING_INDEX('nabeels outlet', ' ', 1)

    看看这个 fiddle 并测试一下自己:http://sqlfiddle.com/#!9/b3000/21

    希望有帮助。

    关于php - MySql REGEXP 通过包含特定单词进行多单词搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50146847/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com