Сортировать по лучшему совпадению в красноречивом - PullRequest
1 голос
/ 13 июня 2019

У меня есть некоторые результаты, которые я получаю из красноречивого запроса, и я хочу упорядочить их по наилучшему совпадению.Как я могу сделать это по-красноречиво?

здесь я нашел какое-то решение в SQL, но не смог использовать его в eloquent Builder.

    SELECT TOP 5 * 
    FROM Products
    WHERE ProductCode LIKE '%200%'
    ORDER BY CHARINDEX('200', ProductCode, 1), ProductCode

https://bytutorial.com/blogs/tsql/how-to-order-the-sql-query-result-by-best-match-keyword-search

1 Ответ

2 голосов
/ 13 июня 2019

Да, как предложено, вы можете использовать orderByRaw() Таким образом, ваш запрос будет преобразован как:

$result = Product::where("ProductCode", "LIKE", '%200%')
                ->orderByRaw('CHARINDEX('200', ProductCode, 1) DESC, ProductCode ASC')
                ->get();

Здесь, как предполагается, название модели Product для таблицы products.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...