php - 根据特定 ID 按字母顺序选择用户

标签 php mysql

我熟悉分页,因为我可以根据页码选择一组用户,如下所示:

// setup pagination
$page = 1;
$display = 5;
$start = $display * $page - $display;

$sql = "SELECT * FROM users WHERE valid = 'Y' ORDER BY :username ASC LIMIT :start, :display";
$sth = $this->db->prepare($sql);
$sth->bindValue(':username', $username, PDO::PARAM_STR);
$sth->bindValue(':start', $start, PDO::PARAM_INT);
$sth->bindValue(':display', $display, PDO::PARAM_INT);
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_ASSOC);

我想弄清楚的是如何只做类似的事情而不是页码我有一个用户 ID。例如,给定用户 ID“3”和显示限制“3”,我想选择该用户以及按字母顺序排列前后的用户(总共三个用户)。我希望这是有道理的..

关于如何处理这个问题有什么建议吗?

最佳答案

下面是一种使用三个子查询并结合union all的方法:

(select *
 from users
 where valid = 'Y' and username < :username
 order by username desc
 limit 1
)
union all
(select *
 from users
 where valid = 'Y' and username = :username
 order by username desc
 limit 1
)
union all
(select *
 from users
 where valid = 'Y' and username > :username
 order by username
 limit 1
)

关于php - 根据特定 ID 按字母顺序选择用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16576424/

相关文章:

mysql - 你能在 JSON 数据中做一个查询,比如 mysql 查询吗

mysql - 按不同的键子集分组

javascript - jQuery 文件上传总是失败并显示 "File upload aborted"

mysql - 为什么我的更新语句不起作用?

mysql - 如何使用MySQL设计动态表

php - encodeURIComponent 真的有用吗?

mysql - 如何引用 SELECT 查询引用的字段?

php - 过滤文件中的查询结果

php - Symfony 2 + Doctrine 2 + 继承

java - php 向 java 服务器发出请求