Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment supprimer une ligne en double compte tenu de la phonétique arabe

Il existe plusieurs façons d'y parvenir.

1- Vous pouvez soit sélectionner vos lignes dans la base de données, les parcourir et enregistrer le titre du "mot" dans un tableau, et à chaque itération de la boucle, vous pouvez vérifier si une valeur similaire est in_array() . Si la valeur existe, vous pouvez enregistrer l'identifiant dans un autre tableau, puis utiliser ces identifiants pour les supprimer de la base de données.

2- Une autre façon d'extraire les identifiants consiste à utiliser une requête similaire à celle ci-dessous :

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

Vous pouvez ensuite parcourir les résultats et supprimer la ligne (à l'aide des identifiants) où le nombre est supérieur à 1.

Le concept de base dans les deux (et d'autres méthodes) est qu'il vous suffit de faire correspondre les chaînes. La phonétique sur les lettres change la chaîne réelle donc "سَلام" n'est pas égal à "سلام".

Par ailleurs, il existe une excellente bibliothèque PHP arabe que vous pouvez utiliser pour diverses manipulations de chaînes liées à l'arabe :PHP et la langue arabe .

De cette façon, un seul doublon sera supprimé.

Il existe plusieurs autres façons de le faire, et tout dépend de la taille de l'ensemble de données dont vous disposez et si la suppression de ces doublons est une opération ponctuelle ou fréquente, car vous devrez garder à l'esprit les performances.