database - 在 mysql 中选择上一行和下一行 - 如何?

标签 database mysql

如果当前行没有任何数字标识符,我不知道如何选择上一行/下一行。

对于数值,我总是使用 2 个查询:

  SELECT min(customer_id) 
    FROM customers 
   WHERE `customer_id` < 10 
GROUP BY customer_status 
ORDER BY customer_name ASC 
  LIMIT 1;

  SELECT max(customer_id) 
    FROM customers 
   WHERE `customer_id` > 10 
GROUP BY customer_status 
ORDER BY customer_name DESC 
   LIMIT 1;

但是,我不再有“customer_id”,只有“customer_name”。当我查询数据库并按此列排序时,我得到:

Ab
Bb
Cc
Dd
Ee

假设我当前客户的名字是“Cc”。我希望能够从数据库中选择“Bb”和“Dd”。如何? :)

最佳答案

行没有顺序,mysql 以它想要的任何顺序存储行。这就是所谓的聚类。您可以使用 LIMIT 来获取结果集的子集。 LIMIT 10 表示第 1 至 10 行。LIMIT 11,20 表示第 11 至 20 行,依此类推。第1行对应于结果集中的行的顺序,由于表中的行更像是一朵“云”,因此在使用 ORDER BY 子句构建结果集之前,没有顺序。

关于database - 在 mysql 中选择上一行和下一行 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3562253/

相关文章:

mysql - 获取论坛中所有主题的回复总数

database - SQLite:结束事务花费的时间太长

php - 从所有记录中获取所有相关的多对多而不是从每个记录 laravel

php - 快速使用数组最近的元素来确定新元素是否唯一

python - Django 相关名称

mysql - 只选择一列而不是 mysql 查询中的所有列

mysql - SQL 从表的所有列中删除元素

php - 将MySql表数据导出为CSV(先修改字段)

mysql - 如何以 React 形式管理来自 Express 的 mysql 查询错误?

PHP 首先对非空组列表进行排序,然后是空组