php - 如何考虑阿拉伯语语音删除重复行

标签 php mysql

我有一个阿拉伯文本表格。我想删除重复的行。从阿拉伯语的符号来看:َ ِ ُ

我的表格: 词汇

+----+----------+--------------------------------+
| id |   word   |              mean              |
--------------------------------------------------
| 1 |    سِلام    |              xxx               |
--------------------------------------------------
| 2 |    سَلام    |              xxx               |
--------------------------------------------------
| 3 |    سلام    |              xxx               |
--------------------------------------------------
| 4 |    سلام    |              xxx               |
+------------------------------------------------+  

现在我想要这张 table :

+----+----------+--------------------------------+
| id |   word   |              mean              |
--------------------------------------------------
| 1 |    سِلام    |              xxx               |
--------------------------------------------------
| 2 |    سَلام    |              xxx               |
--------------------------------------------------
| 3 |    سلام    |              xxx               |
+------------------------------------------------+

我该怎么做?!

我的尝试:

$result = mysql_query( "SELECT * FROM vocabulary where");
while($end = mysql_fetch_assoc($result)){

    $word = $end["word"];
    $mean = $end["mean"];
    $id = $end["id"];


$result2 = mysql_query( "SELECT * FROM vocabulary where word='$word' AND mean='$mean'");
$TotalResults = mysql_num_rows($result2);

if($TotalResults>1){

     mysql_query( "DELETE FROM vocabulary WHERE id='$id'");
}

摘要:如何使 MySQL 对阿拉伯符号敏感?

最佳答案

有多种方法可以实现这一目标。

1-您可以从数据库中选择行,循环遍历它们并将“单词”标题保存在数组中,并且在循环的每次迭代中,您可以检查是否有类似的值 in_array( )。如果该值存在,那么您可以将该 id 保存在另一个数组中,然后使用这些 id 从数据库中删除。

2- 提取 id 的另一种方法是使用类似于以下的查询:

按标题从表组中选择计数(*)、id

然后您可以循环遍历结果并删除 count 大于 1 的行(使用 id)。

这两种方法(以及其他方法)的基本概念是您只需匹配字符串即可。字母上的发音会改变实际的字符串,因此“Sָَ”不等于“Ŏֹ”。

顺便说一句,有一个很棒的阿拉伯语 PHP 库,您可以使用它进行各种与阿拉伯语相关的字符串操作: PHP and Arabic Language .

这种方式只会删除一个重复项。

还有其他几种方法可以做到这一点,这完全取决于您拥有的数据集的大小,以及删除这些重复项是一次性的事情还是频繁的事情,因为您必须牢记性能。

关于php - 如何考虑阿拉伯语语音删除重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30401571/

相关文章:

mysql - 资源密集型 MySQL 嵌套选择

java - 再一次...... Java 应用程序中嵌入的 MySQL

php - PDO 是否关心带有占位符的查询是否使用非关联数组?

php - 减少静态 HTML 页面中的重复

php - 序列化和反序列化 $_POST 数组是否安全?

php - 我怎样才能使这个带有 if 语句的 PDO mysql 查询正常工作?

php - 在 .net 应用程序中实现 Speller 页面时如何解决错误[不允许用于访问路径的 HTTP 动词 POST]

php - Symfony 2 - 如何将数据传递给 formBuilder?

php - SQL 查询从两个相互关联的表中提取记录 - 表 2 取决于表 1

php - 如何加快 MySQL 产品搜索结果的速度?