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

Come rimuovere le righe duplicate considerando la fonetica araba

Ci sono diversi modi per raggiungere questo obiettivo.

1- Puoi selezionare le tue righe dal database, scorrerle e salvare il titolo della "parola" in un array e, in ogni iterazione del ciclo, puoi verificare se un valore simile è in_array() . Se il valore esiste, puoi salvare l'id in un altro array e quindi utilizzare questi ID per eliminarlo dal database.

2- Un altro modo per estrarre gli ID è utilizzare una query simile alla seguente:

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

Puoi quindi scorrere i risultati ed eliminare la riga (usando gli ID) in cui il conteggio è maggiore di 1.

Il concetto di base in entrambi (e altri metodi) è che devi solo abbinare le stringhe. La fonetica sulle lettere cambia la stringa effettiva, quindi "سَلام" non è uguale a "سلام".

In una nota a margine, c'è un'ottima libreria PHP araba che puoi utilizzare per varie manipolazioni di stringhe relative all'arabo:PHP e lingua araba .

In questo modo rimuoverai solo un duplicato.

Esistono molti altri modi per farlo e tutto dipende dalle dimensioni del set di dati che hai e se eliminare questi duplicati è una cosa una tantum o una cosa frequente perché dovrai tenere a mente le prestazioni.