我有一個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是的絕對,這就是爲什麼我提到「不是一個好的解決方案」 –