我有一个表,并且有一个“名称”字段,但是有时某些名称太长,我该如何取名字,中间名和姓氏(仅3个字)?
$student = DB::table('student')
->select('student.name')//Split to Firstname, Middlename&Lastname
->get();
答案 0 :(得分:0)
我不认为雄辩者可以做到这一点。您需要使用php内置函数
$fullname = explode(" ", $student);
$firstname = array_shift($split);
$lastname = implode(" ", $split);
答案 1 :(得分:0)
对我来说,将一个单词(全名)分成三个单词是一个坏主意,因为如果他的名字中有两个单词怎么办,那么问题就存在了,因为您只希望三个单词(名字,中间和姓氏) )。
但是,如果您真的想追求,请参考以下代码:
$student = DB::table('student')
->select(
'student.name',
DB::raw("SUBSTRING_INDEX(student.name, ' ', 1) AS Firstname"),
DB::raw("SUBSTRING_INDEX(SUBSTRING_INDEX(student.name, ' ', 2),' ',-1) AS Middlename"),
DB::raw("SUBSTRING_INDEX(SUBSTRING_INDEX(student.name, ' ', 3),' ',-1) AS Lastname")
)
->get();
我假设您使用的是空格(''),它连接了三个单词(名字,中间名和姓氏)
注释示例输出:
1. John Ghost Pon
名字 =“约翰”,中间名 =“鬼”,姓氏 =“ Pon”
2.嫁给安妮·史密斯·英格拉姆
名字 =“结婚”,中间名 =“安妮”,姓氏 =“史密斯”