【发布时间】:2016-05-13 13:52:29
【问题描述】:
我有一个 SQL 表,其中有一个名为 full name 的列,其中包含“John Doe”
如何按全名列中出现的姓氏对数据进行排序?
对于像“John Doe Second”这样的长名称,我想按单词“Doe”对数据进行排序。
我正在使用 MySQL 数据库。
编辑:这是精确度:案例“约翰”是不可能的。我认为姓氏应该在我的字符串中的第一个空格之后。
【问题讨论】:
-
姓氏将出现在字符串中的什么位置?在第一个空格之后,第二个空格?你应该清楚地说明这一点。
-
“比利·鲍勃·松顿”怎么样? “德雷克”呢?将全名拆分为组件根本不是一个小问题。 正确的答案是使用多列,根据需要花费尽可能多的时间来清理数据。
-
如果你想区别对待名字和姓氏(例如排序),那么它应该是两列。一些问题名称已经被提及。还有更多。在中文名字中,例如姓氏在前。
-
我编辑了我的帖子以提供一些精确度。我认为没有中文名称或其他任何名称,只有“经典”名称,其中可能包含“John Doe”或“John One Two”。没有别的了。
-
如果您真的无法更改表格并且可以检测字符串中的第一个空格,请使用字符串函数查找位置并获取您感兴趣的子字符串。这是否回答了您的问题?