sql >> Base de Datos >  >> RDS >> Mysql

Cómo eliminar una fila duplicada teniendo en cuenta la fonética árabe

Hay varias formas de lograr esto.

1- Puede seleccionar sus filas de la base de datos, recorrerlas y guardar el título de la 'palabra' en una matriz, y en cada iteración en el ciclo, puede verificar si un valor similar es in_array() . Si el valor existe, puede guardar la identificación en otra matriz y luego usar estas identificaciones para eliminarlas de la base de datos.

2- Otra forma de extraer los ID es usar una consulta similar a la siguiente:

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

Luego puede recorrer los resultados y eliminar la fila (usando los id) donde el recuento es mayor que 1.

El concepto básico en ambos (y otros métodos) es que solo tiene que hacer coincidir las cadenas. La fonética de las letras cambia la cadena real para que "سَلام" no sea igual a "سلام".

En una nota al margen, hay una gran biblioteca PHP en árabe que puede usar para varias manipulaciones de cadenas relacionadas con el árabe:PHP y el idioma árabe .

De esta forma solo se eliminará un duplicado.

Hay varias otras formas de hacerlo, y todo depende del tamaño del conjunto de datos que tenga y si la eliminación de estos duplicados es algo único o algo frecuente porque tendrá que tener en cuenta el rendimiento.