我有个问题.我想从表中只获得300行而不接触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
Run Code Online (Sandbox Code Playgroud)
编辑:
简单的解释:我需要从系统中获取最近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
Run Code Online (Sandbox Code Playgroud)
如果目的是加快查询速度,那么您可以创建一个复合索引:
ALTER TABLE `mm_ads`
ADD INDEX `mm_ads_index` (`category` ASC, `status` ASC, `id` DESC);
Run Code Online (Sandbox Code Playgroud)