Laravel eloquent - упорядочить по начальной строке - PullRequest
0 голосов
/ 14 мая 2019

Представьте, что у меня 3 пользователя, и я хочу отфильтровать их по имени "Роберт"

"Альберт Роберт Уилсон", "Роберт Меган", "Виллиан Джо"

Iхочу, чтобы мой sql нашел все записи, которые содержат Robert, но упорядочены таким образом, что Robert Magan находится в начале, потому что начинается с ключевого слова, а затем идет Albert Robert Wilso

Ответы [ 2 ]

1 голос
/ 15 мая 2019

Вы должны указать пример модели / таблицы и название столбца в своем вопросе.Но скажем, модель User и столбец name.Я думаю, что-то вроде этого будет работать (не проверено):

User::where('name', 'like', '%Robert%')->orderBy(\DB:raw('POSITION("Robert" IN name)', 'asc')->get();

Но, пожалуйста, будьте осторожны, чтобы не создавать уязвимости SQL-инъекций!

0 голосов
/ 15 мая 2019

Вы можете решить эту проблему, используя необработанные манипуляции с mysql и string для сортировки по первому слову.

Другим способом было бы разделить ключевое слово и оставшуюся или полную строку на два отдельных столбца, а затем упорядочитьпо ключевому слову столбец.

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