2011-08-03 13 views
2

我需要連接兩個存儲了相同名稱但寫入方式不同的表。在一張表中,table1.name ='Jameson',另一張table2.name ='Anthony Jameson'。我已成功地加入在查詢中使用這兩個表:正確加入的MySQL字符串操作

 
... 
join table1 on substring_index(table1.name,' ',-1) like substring_index(table2.name,' ',-1) 
... 

但是,很明顯它返回每個人的匹配姓(「詹姆斯·詹姆森」,「卡爾·詹姆森」等)。

有沒有一種方法取最長的字符串(table2)並將名字縮短爲初始值?
所以'安東尼詹姆森'轉換爲'詹姆森',然後匹配加入。

由於有3個詞的名字,如'Craig B Henderson'或'Jolly Mary Bethelem',這使事情進一步複雜化。
理想情況下,除姓氏(最後一個詞)以外的所有名稱都應轉換爲首字母縮寫。所以,'Craig B Henderson' - >'C B Henderson'和'Jolly Mary Bethelem' - >'J M Bethelem'。

謝謝

+0

哇,你的桌子設計必須是一個噩夢。 – Jacob

+0

+1,想看看你將如何解決這個問題 – ajreal

回答