Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So entfernen Sie doppelte Zeilen unter Berücksichtigung der arabischen Phonetik

Es gibt mehrere Möglichkeiten, dies zu erreichen.

1- Sie können entweder Ihre Zeilen aus der Datenbank auswählen, sie durchlaufen und den „Wort“-Titel in einem Array speichern, und bei jeder Iteration in der Schleife können Sie prüfen, ob ein ähnlicher Wert in_array() . Wenn der Wert vorhanden ist, können Sie die ID in einem anderen Array speichern und diese IDs dann zum Löschen aus der Datenbank verwenden.

2- Eine andere Möglichkeit, die IDs zu extrahieren, ist die Verwendung einer Abfrage ähnlich der folgenden:

select count(*), id from table group by title

Sie können dann die Ergebnisse durchlaufen und die Zeile löschen (unter Verwendung der IDs), bei der count größer als 1 ist.

Das Grundkonzept bei beiden (und anderen Methoden) ist, dass Sie nur die Zeichenfolgen abgleichen müssen. Die Phonetik von Buchstaben ändert die tatsächliche Zeichenfolge, sodass "سَلام" nicht gleich "سلام" ist.

Nebenbei bemerkt gibt es eine großartige arabische PHP-Bibliothek, die Sie für verschiedene arabische String-Manipulationen verwenden können:PHP und arabische Sprache .

Auf diese Weise wird nur ein Duplikat entfernt.

Es gibt mehrere andere Möglichkeiten, dies zu tun, und alles hängt von der Größe Ihres Datensatzes ab und davon, ob das Löschen dieser Duplikate eine einmalige oder eine häufige Sache ist, da Sie die Leistung im Auge behalten müssen.