我有一个问题。我只想从表中获取 300 行而不触及 LIMIT。我需要 LIMIT 进行分页。这在 MySQL 中可能吗?
我当前的查询:
SELECT a.title, a.askprice, a.picture, a.description, a.userid, a.id
FROM mm_ads AS a WHERE a.category = 227 AND a.status = 1
ORDER BY id DESC LIMIT 40,20
编辑:
简单的解释:我需要从系统中获取最后 300 个广告,但我需要保持分页,因为我不想在一页中列出 300 行..
最佳答案
SELECT *
FROM (
SELECT a.title, a.askprice, a.picture, a.description, a.userid, a.id
FROM mm_ads AS a
WHERE a.category = 227 AND a.status = 1
ORDER BY id DESC
LIMIT 300
) t
LIMIT 40,20
如果目的是加快查询速度,那么可以创建复合索引:
ALTER TABLE `mm_ads`
ADD INDEX `mm_ads_index` (`category` ASC, `status` ASC, `id` DESC);
关于php - 选择没有LIMIT mysql的n行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6979343/