如果当前行没有任何数字标识符,我不知道如何选择上一行/下一行。
对于数值,我总是使用 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/