php - 删除两列连接重复的行
问题描述
表teh
-1400
行。
我想删除具有col1
和col2
重复的行。
例如 - 如果col1
islorem
和col2
isipsum
并且还有一些下一行 - col1
islorem
和col2
isipsum
这next
行应该被删除。
这是我正在使用的代码,看不出有什么问题,因为最终结果是 - 只剩下一行,所有其他行都被删除。
该表至少有一半关于col1
和col2
连接的唯一行。
$st = $db->query("select id, col1, col2 from teh");
$st->execute();
$arr = $st->fetchAll();
$check = [];
foreach($arr as $el){
$str = $el['col1'] . $el['col2'];
if(in_array($str, $check)){
$sql = "delete from teh where id = :aid";
$st = $db->prepare($sql);
$st->execute([":aid" => $el['id']]);
}
else{
array_push($check, $str);
}
}
解决方案
如果要删除具有较高id
但相同col1
和col2
值的行,您可以简单地使用较低值DELETE
存在匹配行的行id
DELETE
t1
FROM teh t1
JOIN teh t2 ON t2.col1 = t1.col1 AND t2.col2 = t1.col2 AND t2.id < t1.id
推荐阅读
- javascript - Expo无法从ios上的文件系统目录读取文件
- javascript - 将事件附加到wordpress中的动态元素 - jquery
- php - 有没有办法改变php中的日期格式?
- powershell - 替代导出-Excel
- azure-ad-b2c - 保护自定义策略的内部步骤
- c# - 如何更新序列化动态 JSON 中的元素值
- azure - Azure - 使用消耗 API - 不完整的日期
- javascript - Google 登录身份验证功能不起作用(Google firebase)
- python - 离线模型预测不同于自定义视觉门户快速测试
- php - 在 xampp (windows) 中安装时安装 PyroCMS 错误