我正在使用一款应用程序,通过滑动您可以一张一张地看到卡片。向左和向右滑动都是允许的。如果用户向右滑动,他将看到下一张可用的卡片。如果他向左滑动,他会看到上一张卡片。
卡片详细信息存储在 MySQL 表“Cards”中,并具有唯一的 ID,假设“CardID”从数字 1.000.000 开始,依此类推。假设我当前已将 500 张卡添加到“卡”表中,因此最后存储的卡 ID 为 1.000.500。我想创建一个程序,根据用户刷卡的方向,一次向用户发送 20 张卡片。如果向左滑动,程序将发送前 20 条记录,依此类推。
现在认为用户不断向左滑动并请求编号为 1.000.009 及以下的先前记录。我想编写一个 select 语句,它将获取并为用户提供表中剩下的 9 行和底部的 11 行。这将是 CardID 1.000.489 到 1.000.500 的记录,因此当用户刷卡时,当他刷卡没有 1.000.000(第一个)时,他将绕圈看到 1.000.500,反之亦然
提前谢谢
最佳答案
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table (id SERIAL PRIMARY KEY);
INSERT INTO my_table VALUES
(1),
(2),
(3),
(4),
(5),
(6),
(7),
(8),
(9);
SELECT * FROM my_table ORDER BY id > 5 DESC, id;
+----+
| id |
+----+
| 6 |
| 7 |
| 8 |
| 9 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+----+
关于MySQL select语句以循环方式返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60040212/