fname列の値が類似している行をすべて、次の表から順番に選択したいとします。 「アンナは」「アンナ」、および「ミカエラ」の後に来ると「michaalは」「マイケル」の後に来るので、この表からIOWは、私は、IDS 2,5および7(と行を取得したいです)。重複した列の値が類似する行を検索するMySQL
select *, count(fname) cnt
from users group by soundex(fname)
having count(soundex(fname)) > 1;
が、私はそれを結果をグループ化していますので、私は何を取得したいことはこれです
+----+----------+----------+-----+
| id | fname | lname | cnt |
+----+----------+----------+-----+
| 1 | anna | milski | 2 |
| 3 | michael | michaels | 3 |
+----+----------+----------+-----+
です:
+----+------------+----------+
| id | fname | lname |
+----+------------+----------+
| 1 | anna | milski |
| 2 | anna | nguyen |
| 3 | michael | michaels |
| 4 | james | bond |
| 5 | michaela | king |
| 6 | bruce | smart |
| 7 | michaal | hardy |
+----+------------+----------+
私はこれまで持っていることはこれです
+----+----------+----------+-----+
| id | fname | lname | cnt |
+----+----------+----------+-----+
| 2 | anna | nyugen | 2 |
| 5 | michaela | king | 3 |
| 7 | michaal | hardy | 3 |
+----+----------+----------+-----+
質問に対して変更する必要があるものy?私は "group by"を削除しようとしましたが、結果が変わってしまいました(私は間違っているかもしれませんし、広範囲にテストしていないかもしれません)。
あなたは 'michaela'と' michaal'を両方ともsoundexで入手できますか?私は疑います、あなたのどちらかが手に入るでしょう。あなたがそれを無視することができれば気にするならば、それは問題ではない – Nishant
。 – Gal