php和MySql中的高级搜索词

时间:2017-06-17 12:41:11

标签: php mysql laravel

我有一个 MySql 表包含一个标题字段。

假设用户在输入文本框中输入术语。

现在我想选择标题字段具有以下状态之一的行:

1)其标题与术语完全相同:"sugar">>"sugar"

2)其标题中的一个词就像术语:"pretty flower" >> "rose flower"

3)它的标题来自与该术语相同的Word系列(术语是那些术语的根词):"biology" >> "biography, biodegradable, symbiotic"

我正在使用laravel。如果可以为此提出任何解决方案,那就太棒了

1 个答案:

答案 0 :(得分:3)

这是一个简单的解决方案,直到你提到单词家庭......

然而,这仍然是可以实现的。它是关于你如何接近它的。

您将首先在MySQL中使用like条件。

您可以在MySQL网站上阅读有关Pattern Matching

的更多相关信息

以下是一个例子:

SELECT * FROM my_table WHERE field1 LIKE '%searchTerm%';

在通过" word family"获取结果方面,您可能需要考虑在结果中添加标签。

在表格中添加tags字段,并添加与" word family"相关的标记数组。

您的查询将如下所示:

SELECT * FROM my_table WHERE field1 LIKE '%searchTerm%' OR field2 LIKE '%searchTerm%';

您需要遍历标记数组以查找匹配项(如果有的话)。

我的方法 开始使用

根据Laravel

,如何执
$results = DB::table('table1')
            ->where('myfield', 'like', '%searchterm%')
            ->get();

我当然希望这会让你朝着正确的方向前进。