sql语句选择图片

时间:2011-05-17 04:11:42

标签: mysql

嗨,请参阅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张照片的中间。 还是有另一个解决方案??

1 个答案:

答案 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)

希望有所帮助。