嗨,请参阅here
在这里,你会在缩略图中看到“kk +的照片流(44,986)”其他5张照片。并且使用黑色边框选择当前照片。
我的网站具有类似的功能,可以显示来自同一用户的照片和其他5张照片。如何使用sql语句获取这5张其他照片,其中当前照片位于中间?
我认为是获取当前照片的行号。之后,再做一个使用限制的sql查询来查找当前照片前面和后面的其他4张照片。但是我如何获得所选行的行号???
E.g
我们有这些照片:A,B,C,D,E,F,G,H,I,J
如果当前照片为C,则来自同一用户的其他5张照片将为照片A,B, C ,D,E。
如果当前照片为F,则来自同一用户的其他5张照片将为照片D,E, F ,G,H
请注意,当前照片始终位于其他5张照片的中间。 还是有另一个解决方案??
答案 0 :(得分:0)
如果当前照片的数字ID为photo_id
,则可以使用以下SQL检索相关照片:
SELECT *
FROM photo_table
WHERE photo_table.id > (photo_id-2)
AND photo_table.id < (photo_id+2)
如果您对检索当前照片不感兴趣,只需添加条件即可将其排除,即
AND photo_table.id <> photo_id
问题是 - 如何检索所选照片的ID?如果您有例如有问题的照片的文件名,您可以按以下行查询:
SELECT *
FROM photo_table input_photo
WHERE input_photo.filename = {some_parameter}
LEFT JOIN photo_table other_photos ON
other_photos.id > (input_photo.id-2) AND
other_photos.id < (input_photo.id+2)
希望有所帮助。