我有一个包含 ID、NAME、PRICE 和 DATE 列的表。
我正在尝试编写一个分页式导航,因为表中有很多条目,所以查看整个 SELECT 的输出变得不舒服。
我写了以下请求:
SELECT id
, name
, price
, date
FROM mytable
ORDER
BY name asc
LIMIT 30 OFFSET _here's_my_offset_depending_on_the_current_position_
这仅在示例中工作正常。当我尝试按价格对其进行排序时,似乎 MYSQL 首先使用 ORDER BY 对整个表进行排序,然后才进行偏移。
我如何改变这种行为,换句话说,我如何进行偏移,而不是按照我喜欢的方式对结果行进行排序?
最佳答案
如果你使用子查询,这会很容易:
SELECT * FROM (
SELECT id, name, price, date FROM mytable LIMIT 30 OFFSET _offset_
) AS page ORDER BY page.name asc
关于MySQL ORDER BY + LIMIT + OFFSET 语句 : how to OFFSET firts and only then sort with ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36870753/