我有一个4列的表。我想根据输入显示行,并且应该能够根据优先级字段优先显示。如何确定结果的优先级laravel雄辩
例如:我的表看起来像这样:
ID title description tags
1 web developer designer front-end
2 designer front-end web developer
3 front-end web developer designer
我有我的测试用例低于它应该是如何工作的:
$input = 'web developer' // the sequence should be IDs : 1, 3, 2
$input = 'front-end' // output sequence result is : 3, 2, 1
$input = 'designer' // result sequence : 2, 1, 3
现在,我想要的结果,从标题到标签优先基于输入。
$blog = DB::('blogs')
->where('title', 'LIKE', '%$title%')
->where('description', 'LIKE', '%$title%')
->where('tags', 'LIKE', '%$title%');
但上面的代码,似乎它没有..
你有逻辑的人,但我认为这会工作过慢,如果你有几百万个数据的 – smzapp
我想你也将需要一个'ORDER BY'条款在这里做这个工作。您可以将一个计算列添加到您的'UNION'查询中,以跟踪每个子查询,然后在最后按该列排序。 –
@samuel是的绝对,这就是为什么我提到“不是一个好的解决方案” –