【发布时间】:2018-06-28 18:47:00
【问题描述】:
我有一个表名test,列有id(primary key) 和t1(varchar)。 t1 包含具有多个重复条目的电子邮件 ID。所以我想选择所有数据并将重复的条目替换为空白行,例如:
表格看起来像
id | t1
1 | a@gmail.com
2 | b@gmail.com
3 | c@gmail.com
4 | a@gmail.com
5 | e@gmail.com
6 | c@gmail.com
我想要的结果
id | t1
1 | a@gmail.com
2 | b@gmail.com
3 | c@gmail.com
4 | DUPLICATE
5 | e@gmail.com
6 | DUPLICATE
FIDDLE 链接:http://sqlfiddle.com/#!9/e94620/2
或
我可以用 PHP 完成这项工作吗
【问题讨论】:
-
那么你尝试了什么......
-
我可以得到重复的条目,但是如何替换它们。我附上了小提琴链接@YashParekh
-
最好根据您的需要获取所有数据并在 PHP 中对其进行操作。
-
在 MySQL 中尝试
DISTINCT查询无需使用 php,如果您不想使用DISTINCT,那么在 php 中您可以在重复条目数组上调用array_unique。 -
我怀疑在 PHP 中会更容易。从表中选择所有数据。创建一个数组来保存您以前见过的值。每次处理数据库中的一行时,检查它是否在前见值数组中。如果没有,请将其添加到该数组并移至下一行。如果它 已 已经看到,则运行 SQL UPDATE 以根据您的要求将行中的值更改为 DUPLICATE。逻辑不太难,你可以自己试试