Laravel雄辩-以字符串开头

时间:2019-05-14 20:58:30

标签: laravel eloquent

假设我有3个用户,然后我想用“罗伯特”的名字进行过滤

“阿尔伯特·罗伯特·威尔逊”,“罗伯特·梅根”,“威廉·乔”

我希望我的sql查找包含Robert的所有记录,但是以Robert Magan开头的方式进行排序,原因是它以关键字开头,接着是Albert Robert Wilso

2 个答案:

答案 0 :(得分:1)

您应该在问题中提供示例模型/表名称和列名称。但是,假设模型为User,列为name。我认为类似的方法会起作用(未经测试):

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

但是请注意不要创建SQL注入漏洞!

答案 1 :(得分:0)

您可以使用一些原始的mysql和字符串操作来解决此问题,以便按第一个单词进行排序。

另一种方法是将关键字和剩余或完整的字符串分成两个单独的列,然后按关键字列进行排序。