如何在 MySQL 查询中从 10 循环到 1?
How to wrap around from 10 to 1 in MySQL query?
我总共有 10 名员工,我必须在我的页面上显示接下来的 3 名员工的详细信息,我尝试了以下代码。
SELECT *
FROM employee
where empid > 1
and is_active = 1
order
by empid ASC
limit 0 , 3
我得到正确的输出 2、3、4。
现在我的问题是,如果 empid 是 10,那么我得到的是空行。是否可以在 empid 为 10
时显示 1,2,3
或者如果 empid 为 8
则显示 9,10,1
我的意思是我希望它从 10 to 1
开始环绕。
empid | Name | Position | Office | Age
1 | Airi | Accountant | Tokyo | 33
2 | Angelica | Officer | London | 47
3 | Ashton | Technical | Francisco| 66
4 | Bradley | Software | London | 41
5 | Brenden | Engineer | Francisco| 28
6 | qodjf | Accountant | Tokyo | 33
7 | Angelica | Officer | New York | 50
8 | Ashton | Technical | Francisco| 30
9 | zxysz | Software | London | 50
10 | Brenden | Engineer | Francisco| 28
我试图在 db-fiddle 中创建一个 table,但出现错误。我正在使用 PHPMyAdmin。所以我在这里添加了table。
在ORDER BY
子句中移动条件empid > ? DESC
:
SELECT *
FROM employee
WHERE is_active = 1
ORDER BY empid > ? DESC, empid LIMIT 3
参见demo。
我总共有 10 名员工,我必须在我的页面上显示接下来的 3 名员工的详细信息,我尝试了以下代码。
SELECT *
FROM employee
where empid > 1
and is_active = 1
order
by empid ASC
limit 0 , 3
我得到正确的输出 2、3、4。
现在我的问题是,如果 empid 是 10,那么我得到的是空行。是否可以在 empid 为 10
时显示 1,2,3
或者如果 empid 为 8
则显示 9,10,1
我的意思是我希望它从 10 to 1
开始环绕。
empid | Name | Position | Office | Age
1 | Airi | Accountant | Tokyo | 33
2 | Angelica | Officer | London | 47
3 | Ashton | Technical | Francisco| 66
4 | Bradley | Software | London | 41
5 | Brenden | Engineer | Francisco| 28
6 | qodjf | Accountant | Tokyo | 33
7 | Angelica | Officer | New York | 50
8 | Ashton | Technical | Francisco| 30
9 | zxysz | Software | London | 50
10 | Brenden | Engineer | Francisco| 28
我试图在 db-fiddle 中创建一个 table,但出现错误。我正在使用 PHPMyAdmin。所以我在这里添加了table。
在ORDER BY
子句中移动条件empid > ? DESC
:
SELECT *
FROM employee
WHERE is_active = 1
ORDER BY empid > ? DESC, empid LIMIT 3
参见demo。