2015-08-21 42 views
0

不幸的是,我不得不處理大量用戶提交的數據,文本字段而不是選項框。我已經將它作爲字符串導入到我的MySQL數據庫中。我這樣做是爲了能夠像十大最常見的公司那樣快速運行統計數據。我遇到的問題是,某些行對同一公司的名稱略有不同。例如:如何用MySQL中的類似結果替換字段

  • Brasfield & Gorrie, LLC VS Brasfield and Gorrie
  • Britt Peters and Associates VS Britt, Peters & Associates Inc.

有一些非常簡單的MySQL命令或外部工具,讓我去通過,並結合這些排序行。我知道如何使用REPLACE(),但我不認爲它有能力做到這一點。如我錯了請糾正我!

+2

我懷疑你可以用mysql做到這一點。你用什麼語言來寫這個?有很多方法可以解決這個問題。您可以抓取文本,從文本中刪除符號和文字,如'和','llc'等,並進行比較。使用正則表達式。等等,我想我應該問,你有什麼嘗試? – khuderm

+0

我使用PHP。老實說,我並沒有真正嘗試過,因爲所有的數據有多不同。就像我剛纔提到的,我用REPLACE()做了一些事情,但它似乎做得不夠。 – jamesthollowell

回答

1

以這個例子:

Brasfield &戈裏,LLC VS Brasfield和戈裏

假設我想保持第一位的,我會發現,有第二個的ID的所有記錄並將它們更新爲使用第一個,假定這個標題的表中也有每個標題的ID字段。

您將在PHP中創建一個頁面,允許您使用鼠標單擊來管理此頁面,但由於您允許用戶輸入此數據,因此需要定期修剪。對於未來的條目,您可以嘗試應用Levenshtein Distance並嘗試根據可用的類似匹配提供建議,以便您可以幫助指導用戶使用已存在的內容而不是新的數據庫條目。

+0

你提到的算法是否也具有追溯性?我可以用它來幫助合併舊的條目嗎? – jamesthollowell