sql >> Database teknologi >  >> RDS >> Mysql

Sådan fjerner du dublet række i betragtning af den arabiske fonetik

Der er flere måder at opnå dette på.

1- Du kan enten vælge dine rækker fra databasen, gå gennem dem og gemme 'word'-titlen i et array, og i hver iteration i løkken kan du kontrollere, om en lignende værdi er in_array() . Hvis værdien findes, kan du gemme id'et i et andet array og derefter bruge disse id'er til at slette fra databasen.

2- En anden måde at udtrække id'erne på er at bruge en forespørgsel svarende til nedenstående:

vælg antal(*), id fra tabelgruppe efter titel

Du kan derefter gå gennem resultaterne og slette rækken (ved hjælp af id'erne), hvor antallet er større end 1.

Grundkonceptet i begge (og andre metoder) er, at du bare skal matche strengene. Fonetik på bogstaver ændrer den faktiske streng, så "سَلام" er ikke lig med "سلام".

På en sidebemærkning er der et fantastisk arabisk PHP-bibliotek, du kan bruge til forskellige arabisk-relaterede strengmanipulationer:PHP og arabisk sprog .

På denne måde vil kun én dublet fjernes.

Der er flere andre måder at gøre det på, og det hele afhænger af størrelsen på det datasæt, du har, og om sletning af disse dubletter er en engangs ting eller en hyppig ting, fordi du bliver nødt til at huske ydeevnen.



  1. ActiveRecord find og returner kun valgte kolonner justeret med [:id]

  2. Hvordan udfylder man en tabel med en række datoer?

  3. persist java LocalDate i MySQL

  4. mysql-oversættelsestabeller med manglende sprogtilbagegang