我有一个看起来像这样的表(省略了不重要的列
`pictures` (
`picture_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`picture_title` varchar(255) NOT NULL,
`album_id` int(10) unsigned DEFAULT NULL,
`authenticated` tinyint(4) DEFAULT '0',
`approved` tinyint(4) DEFAULT '0'
)
我想要做的是获得下一个和上一个经过身份验证和批准的picture_id。不过有一个问题——这种情况要么必须有,picture_id = album_id
要么album_id IS NULL
.
这是一张更容易描述我想要实现的目标的图像。http://i.imgur.com/xTaEhwt.png
标记为红色的列是我要选择的列,标记为绿色的列是我拥有的并想找到下一个/上一个 id 的 picture_id。请注意,它会跳过picture_ids 2 < 9,因为它的album_id 不等于它的picture_id,它会跳过picture_id 11,因为它没有经过身份验证/批准。
我如何实现这一目标?我一无所知。
编辑:改写了一下