如何在MySQL中根据perceptual hash similarity对结果进行分组

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (85)

假设MySQL表Image有以下列

  • id
  • user_id
  • p_hash

SQL查询如下所示:

SELECT `Image`.*, BIT_COUNT(`p_hash` ^ :hash) as `hamming_distance`
FROM `Image`
HAVING `hamming_distance` < 5
提问于
用户回答回答于

试试以下代码:

SELECT i1.id, GROUP_CONCAT(i2.id) AS similar_images
FROM Image AS i1
JOIN Image AS i2 ON i1.id != i2.id AND BIT_COUNT(i1.`p_hash` ^ i2.p_hash) < 5
GROUP BY i1.id

扫码关注云+社区

领取腾讯云代金券