【发布时间】:2021-09-17 23:29:00
【问题描述】:
我有这个原始的 SQL 语句,它接受一个全名,不管有多少个名字,然后把它变成 字符串中的最后一个单词作为姓氏 以及其他所有内容作为名字
DB::raw("SUBSTRING_INDEX(user_fullname, ' ', 1) AS firstname");
DB::raw("TRIM(SUBSTRING(user_fullname, 1, LENGTH(user_fullname) +
CHAR_LENGTH(SUBSTRING_INDEX(user_fullname, ' ', 2)))) AS lastname");
我希望它做相反的事情,将它作为名字作为字符串中的第一个单词,将其他所有单词作为姓氏;我尝试了代码,但我所做的一切似乎都破坏了它。
【问题讨论】:
-
请提供样本数据和期望的结果。
-
我有一个全名数据库,很多时候,名字由 3、4 或 5 个名字组成,我只想把它分成名字,名字只是数据中的第一个单词,其他都是姓氏。希望这能更好地解释它。
-
SUBSTRING(user_fullname, LENGTH(SUBSTRING_INDEX(user_fullname, ' ', 1))+2) AS lastname...? -
@CBroe 是的,这行得通,谢谢!