sql >> Databáze >  >> RDS >> Mysql

Jak odstranit duplicitní řádek s ohledem na arabskou fonetiku

Existuje několik způsobů, jak toho dosáhnout.

1- Můžete buď vybrat své řádky z databáze, procházet je a uložit název slova do pole a v každé iteraci cyklu můžete zkontrolovat, zda je podobná hodnota in_array() . Pokud hodnota existuje, můžete id uložit do jiného pole a poté použít tato id k odstranění z databáze.

2- Dalším způsobem, jak extrahovat ID, je použít dotaz podobný níže:

vyberte počet(*), id ze skupiny tabulky podle názvu

Poté můžete procházet výsledky a odstranit řádek (pomocí ID), kde je počet větší než 1.

Základním konceptem obou (a dalších metod) je, že stačí porovnat řetězce. Fonetika v písmenech mění skutečný řetězec, takže "سَلام" se nerovná "سلام".

Na okraj, existuje skvělá arabská knihovna PHP, kterou můžete použít pro různé manipulace s řetězci souvisejícími s arabštinou:PHP a arabština .

Tímto způsobem odstraníte pouze jeden duplikát.

Existuje několik dalších způsobů, jak to udělat, a vše závisí na velikosti souboru dat, který máte, a na tom, zda je odstranění těchto duplikátů jednorázovou záležitostí nebo častou záležitostí, protože budete muset mít na paměti výkon.



  1. Jak zacházet s volitelnou hodnotou vrácenou dotazem pomocí bedny postgres?

  2. Jak používat uživatelem definované proměnné v příkazu limit?

  3. Počítání nulových hodnot jako jedinečné hodnoty

  4. Chyby při použití array_push -- První argument by mělo být pole