使用Mysql的Laravel计算“喜欢”查询

时间:2017-06-16 04:48:16

标签: mysql laravel-5.4 sql-like

我的标题上有一个搜索栏,显示查询字符串的结果,例如“car”。我必须对2个表进行查询,然后执行union all以结合两个结果然后显示它们。

我不想要的是第一个查询的所有结果都显示在最顶层而第二个结果的其余部分显示在底部。所以我有一个想法来计算“喜欢”匹配的百分比,然后重新安排结果,使它看起来多样化。老实说,我不知道如何做到这一点。

示例:

查询字符串= car

查询第一个表:

id | name | 
1   red carts
2   carrots
3   purple

查询第二个表:

id | name | 
1   cars
2   cat
3   red

以下是关于我现在如何获得逻辑的结果(这是查询第一个表然后与第二个表结果组合)。 只是猜测第一张表的顺序。

carrots   (first table)
red carts (first table)
cars      (second table)

我想要它做的是让mysql返回“喜欢”子句相等多少的百分比。如果以下是正确的:

carrots   (30%)
red carts (80%)
cars      (50%)

我接下来要做的只是做一个数组地图并按百分比排序。 (希望我可以让mysql将%作为列返回)这将带来最终结果:

red carts (80%, table 1) 
cars      (50%, tables 2)
carrots   (30%, table 3)

任何帮助都将不胜感激,谢谢。

EDIT 感谢任何反馈,在搜索了一下之后,我学会了关于mysql的全文搜索。几乎它完全符合我的要求。

对于任何想要实现相同功能的人,我建议使用以下链接。

MySQL Full-Text Search with Multiple words

mySQL Full Text Search With Percentage Scoring

0 个答案:

没有答案