我有以下SQL:

SELECT `PersonID`, `Title`.`Title`, `FirstName`, `LastName`
FROM `Person`
ORDER BY `cft` ASC, `FirstName` ASC


现在的问题是因为结果不是数字,如果将PersonID设置为1020,是否可以获取前后行?

最佳答案

这是下一行的条件(假设每个FirstName没有相似的cft):

WHERE (`cft` = :cft AND FirstName > :firstname) OR (`cft` > :cft)
ORDER BY `cft` ASC, `FirstName` ASC
LIMIT 1


其中,:cft:firstname是带有PersonID = 1020的行中的对应值。

上一行的条件与我所显示的条件非常相似,我敢肯定您可以自己搞定(作为家庭作业进行处理)

10-04 10:40