我想从我的数据库中删除类似的数据。现在我可以从我的数据库中删除重复的数据并保留一个。
$sql = "UPDATE `clf_ads` SET `enabled`= '0' WHERE adid NOT IN (SELECT * FROM (SELECT MAX(adid) FROM clf_ads GROUP BY adtitle) x)";
if ($conn->query($sql) === TRUE) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . $conn->error;
}
$conn->close();
?>如何删除匹配80%相似度的数据?
发布于 2018-12-11 01:41:47
没有80%相似的东西,除非你有一个你正在测试的特定值。例如,如果您的表具有以下内容:
-----------------------------------
| adid | adtitle |
-----------------------------------
| 1 | 'this is an ad title' |
| 2 | 'this is the ad title' |
| 3 | 'that is the ad title' | 那么,如果你只计算单词之间的相似度,那么广告1与广告2的相似度为80%,与广告3的相似度为60%。然而,广告2与广告1的相似度为80%,与广告3的相似度为80%。
因此,除非你挑出一个你想保留的广告,然后比较其他标题与该标题的相似度,否则你目前所要求的是不可能的。
为了比较MySQL中字段之间的相似性,您需要看一下这个问题:how to compute similarity between two strings in MYSQL
https://stackoverflow.com/questions/53710657
复制相似问题