0

我正在开发一个电子邮件应用程序。这是背景:

  • 电子邮件地址存储在addresses表中
  • 消息内容存储在一个message_contents表中

页面顶部有一个搜索栏,操作流程将是用户键入以下内容,例如:Jonathan Kushner programming它会深入到一个点,在这种情况下,它基本上会找到一封包含 Jonathan Kushner 的电子邮件消息正文中的地址和单词编程。

这就是问题所在。目前,我正在对匹配用户查询的电子邮件地址执行 MySQL LIKES,以及对匹配用户查询的消息内容执行 MySQL LIKES。问题是,就我们的示例而言,它永远不会找到匹配的电子邮件地址,Jonathan Kushner programming也不会匹配任何显示的正文内容Jonathan Kushner programming

因此,话虽如此,我需要完成的是能够以某种方式识别查询输入并发现什么是名称和什么是正文内容。我无法理解我是世界上第一个将地址与数据库中的正文内容分开的人,所以它肯定是可能的。

也许我应该设置它,这样用户必须在查询的第一个单词中输入名称或电子邮件地址,然后在 X 个单词之后,他们可以输入内容中的关键字。我真的不喜欢这个想法,它不能工作,因为如果用户没有名字或电子邮件地址来搜索整个理论是失败的,但我只是不知道如何解决这个问题。

另一个想法是可能分离单词并对每个单词和单词组合执行逻辑。

任何帮助将不胜感激。

4

1 回答 1

0

我为电子商务搜索功能做了类似的事情,我将单词拆分,然后使用循环将单词添加到查询中。

WHERE address LIKE '%$search[0]%' OR address LIKE '%$search[1]%' OR contents LIKE '%$search[0]%'

希望这很有用,我会玩一些查询,看看在跳入代码之前什么是有效的。当您开始代码时,我建议将搜索查询拆分为一组单词,然后使用 foreach 循环将它们添加到查询中。

玩得开心,让我知道你过得怎么样!

于 2013-06-01T01:58:30.820 回答