【问题标题】:php my sql search without "like" cause?php mysql搜索没有“喜欢”的原因?
【发布时间】:2010-09-16 07:06:59
【问题描述】:

我正在使用 php 和 mysql...

我有一个应用程序,用户在其中输入任何文本,我想从数据库中查找相关数据,而不在我的 mysql 查询中使用“LIKE”原因。

有没有办法在数据库中搜索这些字符串。

或 mysql 中的任何方法来执行此操作....

提前致谢。

【问题讨论】:

  • 你忘了说些什么。 LIKE 子句有什么问题?
  • 您能否减少文本中!? 标记的数量?它看起来像大喊大叫,很难阅读。谢谢

标签: php mysql search


【解决方案1】:

您也可以查看 MATCH 子句。

【讨论】:

  • +1 用于全文搜索,如果他仍然使用 mysql。他可能需要切换到 myisam,但我猜他已经在使用它了。
【解决方案2】:

您可以使用REGEXP,当用户输入您在查询中输入WHERE field REGEXP '.*TEXT.*' 的单个词时,正则表达式很酷,因为您可以允许用户在搜索字段中输入正则表达式。

【讨论】:

【解决方案3】:

如果您不想使用LIKE,并且不给出原因(对其他人来说似乎很好),那么这里有一个解决方案可以让您找到它。 (但它可能不是现实世界中最好的选择......)

当您想要搜索的任何内容被添加到数据库时,取出每个单词并将其分解为 1 个或多个连续字母的所有可能组合。

例如对于堆栈:

s, t, a, c, k, st, ta, ac, ck, sta, tac, ack, stac, tack, stack

将这些中的每一个插入到带有链接到原始数据的标识符的表中。

然后,您可以将任何搜索查询与此单词列表直接匹配(完全匹配和部分匹配)。如果您的用户正在搜索多个关键字,您可以将它们拆分在前面并搜索每个关键字,寻找与相同标识符的匹配项。

【讨论】:

    猜你喜欢
    • 2017-10-25
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 2015-09-19
    相关资源
    最近更新 更多