检查仅查询数据的子字符串的重复行


Check for duplicate rows querying only a substring of the data

我有重复的图像保存在不同的目录中。因为每个图像位置都存储在数据库中,所以我想删除重复的数据行。我可以使用此查询在同一目录中查找重复的图像位置:

SELECT *
FROM page_additional_images
GROUP BY image_loc
HAVING COUNT(image_loc) > 1

但是,它不适用于不同目录中的图像,例如cars&CCD_ 2。

/images/**cars**/hispano-suiza-k6-pictures-and-wallpapers/hispano-suiza-k6.jpg
/images/**cars4**/hispano-suiza-k6-pictures-and-wallpapers/hispano-suiza-k6.jpg

我如何接受上面的查询并忽略最后一个"/"之前的所有内容来查找重复项?

我想用"/"分解每一行,并且只查询每个数组中的最后一个元素。

据我所知,在MySQL中最接近PHP风格爆炸的是SUBSTRING_INDEX(delim='/',带负计数参数,例如-1,只获取文件名):http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring-索引

您可以为每个条目提供一个唯一的id,mysql可以自动判断是否创建了重复条目,并阻止将其查询到数据库中。在mysql手册中查找UNIQUE INDEX