sql >> Database >  >> RDS >> Mysql

Hoe dubbele rij te verwijderen rekening houdend met de Arabische fonetiek

Er zijn meerdere manieren om dit te bereiken.

1- U kunt ofwel uw rijen uit de database selecteren, er doorheen lopen en de 'woord'-titel in een array opslaan, en in elke iteratie in de lus kunt u controleren of een vergelijkbare waarde in_array() . Als de waarde bestaat, kunt u de id in een andere array opslaan en deze id's vervolgens gebruiken om uit de database te verwijderen.

2- Een andere manier om de id's te extraheren, is door een zoekopdracht te gebruiken die lijkt op de onderstaande:

select count(*), id uit tabelgroep op titel

U kunt dan door de resultaten bladeren en de rij verwijderen (met behulp van de id's) waar het aantal groter is dan 1.

Het basisconcept in beide (en andere methoden) is dat je alleen de snaren hoeft te matchen. Fonetiek op letters verandert de eigenlijke tekenreeks, zodat "سَلام" niet gelijk is aan "سلام".

Even terzijde, er is een geweldige Arabische PHP-bibliotheek die je kunt gebruiken voor verschillende Arabisch gerelateerde stringmanipulatie:PHP en Arabische taal .

Op deze manier wordt slechts één duplicaat verwijderd.

Er zijn verschillende andere manieren om dit te doen, en het hangt allemaal af van de grootte van de dataset die je hebt en of het verwijderen van deze duplicaten een eenmalig of frequent iets is, omdat je de prestaties in gedachten moet houden.



  1. DPI-1047:64-bit Oracle Client-bibliotheek kan niet worden geladen

  2. Laatst verwijderde ID ophalen in MySQL

  3. Mysql-query WHERE-kolom is in json-array

  4. MySQL-fout bij het afkappen van de tabel