我正在处理一个 mysql 查询,其中我需要结果集中的上一个和下一个 id。我能够在没有搜索查询的情况下得到它。但是,当进行搜索时,ID 显然无济于事......这将是基于参数的其他字段。
所以,我正在运行两个不同的查询,一个针对当前用户标识,即 123..,另一个针对上一个用户标识和下一个用户标识。
查询是这样的......
select fields from users where ((
id = IFNULL((select min(id) from users where id > 123),0)
or id = IFNULL((select max(id) from users where id < 123),0)
) AND (username like "%john%"))
有了上面的内容,我得到了用户的上一个和下一个 id...但是当我在示例 'john' 上进行搜索时,我无法从搜索结果中获取下一个 id 和上一个 id?我也有AZ和ZA的字母排序。所以我必须按名称排序,按名称排序,升序,降序。
在会话中存储搜索结果 ID 是一个好主意,包括分页 ID?
有哪些选择可以实现这一目标?请分享你的想法?