我有一個程序,它具有顯示AT至少2重複在MySQL記錄中類似的字符串的功能,我有一個當前的實現工作得很好,但對於300K記錄太慢。如何在MySQL中查詢重複的字符串條目
接觸。例如表條目:
id (int)| name (string) | phone (string) ----------------------------------------- 1 | mike | 081239812345678 2 | jhon | 082222212345678 3 | rudy | 081237712345678 4 | lucy | 081237712345123 5 | lily | 081244412345678
我需要記錄屬於「邁克,JHON,魯迪和百合」,因爲他們最後的電話號碼中的數字8是相同的(複製),但創紀錄的歸屬露西被忽略(因爲沒有其他記錄也有類似的8位結束號碼)
我目前的方法是使用2個查詢:
我的第一個查詢:
"select right(phoner, 8) as myRight , count(*) as totdup from contact group by myRight having totdup > 1";
從該查詢,我可以得到的「myRight」的值,然後我執行第二查詢,以獲得細節:
"select * from contact where phone like '%$myRight'";
我的問題是如何,因爲我有300K的記錄,它需要加快進程這個查詢大約需要20分鐘,我還希望通過只使用1個查詢簡化查詢,但我不知道如何,我已經爲這個問題奮鬥了幾天,現在您的幫助將非常感激。