我通过条件找到了这个漂亮的小订单,它很好地排序了“First Last”类型的字符串,甚至正确地处理了“First Van Damn”。
"SUBSTRING(p.name, LOCATE(' ', p.name) +1)
现在,我在那里有一些名字,比如“Alfred E. Newman”,并且希望排序能够正确地用于该名称(即它不会在E下结束)。
非常感谢任何帮助。
答案 0 :(得分:9)
如果你真的想这样做,
怎么样?RIGHT(p.name, LOCATE(' ', REVERSE(p.name)) - 1)
答案 1 :(得分:-1)
我认为你不能自动可靠地做到这一点。例如,你怎么自动告诉胡安·卡洛斯·佩雷斯继续P和Richard Milhous Nixon继续N?
你必须使用启发式和名字或类似的字典,并且在某些情况下总会失败。最好做朱丽叶所说的:处理数据以生成候选者进行审核,并将名称列分成三个(或四个)列:FirstName,MiddleInitial,LastName。