Php Laravel如何使用全名名字中间首字母姓氏

Php Laravel如何使用全名名字中间首字母姓氏,php,laravel,Php,Laravel,concat全名的正确方式是什么 它在表中的三列是常驻者\u fname常驻者\u mi常驻者\u lname $resident = Resident::whereRAW("Concat(resident_fname,'',resident_mi,'',resident_lname) LIKE '%{$request->input('reservation_name')}%'") ->first(); 我们需要在原始查询中使用CONCAT_WS,但也要了解CONC

concat全名的正确方式是什么 它在表中的三列是常驻者\u fname常驻者\u mi常驻者\u lname

$resident = Resident::whereRAW("Concat(resident_fname,'',resident_mi,'',resident_lname) LIKE '%{$request->input('reservation_name')}%'")
        ->first();

我们需要在原始查询中使用CONCAT_WS,但也要了解CONCAT。那么为什么我们要使用CONCAT_WS呢

CONCAT和CONCAT_WS函数都用于连接两个或多个字符串,但它们之间的基本区别在于,CONCAT_WS函数可以与字符串之间的分隔符一起进行连接,而在CONCAT函数中没有分隔符的概念

例如:

mysql>选择CONCAT'Akash'、'is'、'a'、'good'、'developer'作为“CONCAT的示例”; +-----------+ |康卡特的例子| +-----------+ |Akashisagooddeveloper| +-----------+ 设置为1行0.00秒 mysql>选择CONCAT_-WS'、'Akash'、'is'、'a'、'good'、'developer'作为“CONCAT_-WS的示例”; +------------+ |CONCAT_WS示例| +------------+ |Akash是一个很好的开发者| +------------+ 设置为1行0.00秒 $resident=resident::whereDB::raw'CONCAT_WS,resident_fname,resident_mi,resident_lname','like',$request->input'reservation_name'->first;
在模型中创建函数的更好方法,如

class Resident extends Model{
    public function name(){
        return $this->first_name . ' ' . $this->middle_name . ' ' . $this->last_name;
    }
}
您可以通过以下方式访问它:

$resident = Resident::find(1);
$resident->name()

答案只有fname和lname三列如何?包括中间首字母以使其成为全名?SQL CONCAT函数可以用任意多个参数调用。@ginabotlola您在这里用CONCAT做什么?仅代码的答案在Stackoverflow上的价值很低,因为它们对未来数千名研究人员的教育/授权作用很小。当您重复建议的在您发布答案之前建议的重复链接,您不应该回答-您应该标记/投票关闭。请在您的代码中添加一些解释,以便其他人可以从中学习it@NicoHaase我补充了一些解释,因为你暗示我没有投反对票,但使用纯sql完成此任务似乎开销更小。@这是首选,如果要使用函数,可以像访问模型属性一样访问它,那么为什么要编写查询?我曾在多个项目中工作过,雄辩足以胜任几乎所有的工作,这更有组织性,易于维护,所以我个人不会在我的应用程序中使用任何原始查询。哦,我理解。我只是想猜猜为什么拒绝评论的选民会打你。@mickmackusa我想这是因为他们在想为什么我要回答一个标记为重复的问题,你猜怎么着?不,拒绝投票和中和上升投票是在我敲打之前。不管怎样,我的复制链接或多或少包含您的建议。