我有一个表名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 LINK:http://sqlfiddle.com/#!9/e94620/2
我可以使用PHP完成此操作
答案 0 :(得分:2)
所以...
我对此进行了研究,在PHP中它要容易得多,例如,我有以下脚本;
<table>
<tr>
<th>ID</th>
<th>Email</th>
</tr>
<?php
$data = [ // This will be your info from DB
1 => 'a@gmail.com',
2 => 'b@gmail.com',
3 => 'c@gmail.com',
4 => 'a@gmail.com',
5 => 'e@gmail.com',
6 => 'c@gmail.com'
];
$used_emails = [];
foreach ($data as $key => $part)
{
print "<tr><td>" . $key . "</td><td>";
if (!in_array($part, $used_emails))
{
print $part;
$used_emails[] = $part;
}
else
{
print "duplicate";
}
print "<td></tr>";
}
?>
</table>
结果是
ID Email
1 a@gmail.com
2 b@gmail.com
3 c@gmail.com
4 duplicate
5 e@gmail.com
6 duplicate
这将获取结果,并针对每个结果检查是否已使用过,如果未使用,则显示并说出已使用,否则,打印“重复”
答案 1 :(得分:0)