我需要连接两个存储相同名称但写入方式不同的表。在一个表中,table1.name='A Jameson',另一个表中,table2.name='Anthony Jameson'。我已在查询中使用此函数连接了两个表:
...
在子字符串索引(table1.name,'',-1)上联接table1,如子字符串索引(table2.name,'',-1)
...
但是,很明显,它返回的是每个姓氏匹配的人(“James Jameson”、“Carl Jameson”等)。
有没有一种方法可以使用最长的字符串(表2)并将名字缩短为首字母?所以“Anthony Jameson”转换为“Jameson”,然后匹配加入。更为复杂的是,有3个单词的名字,比如“克雷格B亨德森”或“快乐玛丽贝瑟伦”。理想情况下,除了姓(最后一个字)以外,所有的名字都应该转换成首字母。所以,“克雷格·B·亨德森”->“C·B·亨德森”和“快乐玛丽·贝瑟伦”->“J·M·贝瑟伦”。
谢谢

最佳答案

我建议使用正则表达式,然后使用REGEXP运算符在数据库表中查找它。
此处的文档:http://dev.mysql.com/doc/refman/5.1/en/regexp.html
否则,您可能需要在提取结果集之后处理它。

关于mysql - MySQL字符串操作以正确连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6929041/

10-12 15:23