在下列情况下,我需要你的帮助:
我有一张这样的桌子

----------------------------
| id | order | highlighted |
----------------------------
|  1 |   5   |      1      |
----------------------------
|  2 |   7   |      1      |
----------------------------
|  3 |   0   |      0      |
----------------------------
|  4 |   0   |      0      |
----------------------------
|  5 |   9   |      1      |
----------------------------
|        *and so on*       |
----------------------------

id为整数(11)自动递增
order为整数(11)
highlighted是int(11),仅包含“1”或“0”值
我想在一个查询中对这些条目进行排序,如下所示:
首先显示按highlighted描述排序的order='1'的所有行
下面是按highlighted描述排序的id='0'行
获取的列表应该分页(limit 30, 10-例如,它是第3页,每页10个项目)
结果应该是:
----------------------------
| id | order | highlighted |
----------------------------
|  5 |   9   |      1      |
----------------------------
|  2 |   7   |      1      |
----------------------------
|  1 |   5   |      1      |
----------------------------
|  4 |   0   |      0      |
----------------------------
|  3 |   0   |      0      |
----------------------------
|        *and so on*       |
----------------------------

有什么想法吗?
提前感谢您的建议!

最佳答案

试试这个:

SELECT a.id, a.order, a.highlighted
FROM tableA a
ORDER BY a.highlighted DESC,
        (CASE WHEN a.highlighted = 1 THEN a.order ELSE a.id END) DESC
LIMIT 30, 10;

关于mysql - 列出多个标准的条目,分页,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27352918/

10-09 07:06