php - 选择没有LIMIT mysql的n行

标签 php mysql limit

我有一个问题。我只想从表中获取 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/

相关文章:

php - 时间戳(具有不同的时区格式)在未来吗?

java - Grails 找不到能够从类型 [java.lang.Long] 转换为类型 [User] 的转换器

linux - 使用模块设置 coredumpsize 的限制

php - 如何使用 spl_autoload 自动在所有命名空间中使用根类?

php - 我的 session 将持续多长时间?

php - 无法在 $_GET 中传递 #、"、&

MySQL 连接两个表中的 LIMIT 1

python - Django 和 MySQL - 无法打开数据库文件

sql - 此 SQL 选择代码是否遵循良好实践?

java - 属性文件中保存的值是否有长度限制?