php - 从 mysql 获取数据并替换重复条目
问题描述
我有一个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
小提琴链接: http ://sqlfiddle.com/#!9/e94620/2
或者
我能用 PHP 完成这个吗
解决方案
所以...
我对此进行了研究,并且在 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
这会得到结果,并且对于每个,检查它们是否已被使用,如果没有,则显示并说它已被使用,否则,打印“重复”
推荐阅读
- jenkins - 从 Jenkins 管道并行步骤收集数据
- file - 如何为用户提供在 xamarin 表单中选择文件夹的选项?
- macos - Doxywizard 找不到乳胶
- javascript - console log the state after using useState doesn't return the current value
- sql-server - SSIS 包 - 在 Excel 连接中保留相同的连接属性
- swift - UserDefaults 在新启动时重置
- node.js - 调用函数时使用 process.argv[2] 的要点
- postgresql - 如何在 PostgreSQL 中使用数字作为属性?
- hadoop - 如何控制一个 Hive 查询同时启动的最大容器数
- linux - 理解 rtc_interrupt 中的代码