选择没有LIMIT mysql的n行

Puz*_*uzo 4 php mysql limit

我有个问题.我想从表中只获得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行.

Kar*_*lis 6

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)

  • 为什么你想要这样做......? (6认同)
  • @hoppa我不知道.这只是他问题的直接答案:) (5认同)