2

我了解它是如何LIMIT工作的,但我想知道是否有一种方法可以在之前设置数据库查询的起点LIMIT。这可能吗?我对此有意义吗?

4

5 回答 5

5

LIMIT接受两个值,起点和持续时间。

更新 1

于 2013-01-02T04:59:56.520 回答
4
SELECT * FROM `table` LIMIT [offset], [count]

假设您有 4 页(1、2、3 和 4),并且希望每页显示 10 个结果,您可以执行以下操作:

page_1 (0 - 10)

SELECT * FROM `table` LIMIT  0, 10

page_2 (10 - 20)

SELECT * FROM `table` LIMIT 10, 10

page_3 (20 - 30)

SELECT * FROM `table` LIMIT 20, 10 

page_4 (30 - 40)

SELECT * FROM `table` LIMIT 30, 10 
于 2013-01-02T05:10:33.217 回答
2
SELECT * FROM MyTable LIMIT [startpoint], [row_count]

其中起点是可选的,默认为第一行。指定起点会跳过记录 n 次并从 [起点] 开始计数

SELECT * FROM MyTable LIMIT 5, 15

这将显示从第 5 条记录开始的 15 条记录。

SELECT * FROM MyTable LIMIT 7相当于SELECT * FROM MyTable LIMIT 0,7

于 2013-01-02T05:07:46.000 回答
0

我会给你一个demo 从中学习

SELECT * FROM `your_table` LIMIT 0, 10 

这将显示数据库中的前 10 个结果。

于 2013-01-02T05:02:39.487 回答
0

不确定我是否理解正确,但我会试一试。您可能想考虑在查询中使用变量绑定,这样您的限制是用变量设置的。下面使用 PDO 的代码示例:

class englishTable {
  private $selectAllWithLimit;

  public function __construct($db) {
    $this->selectWithLimit = $db->prepare('SELECT id, english, french FROM english LIMIT :start, :limit');

  public function selectWithLimit($start, $limit) {
    $this->selectWithLimit->bindValue(':start', $start, PDO::PARAM_INT );
    $this->selectWithLimit->bindValue(':limit', $limit, PDO::PARAM_INT );
    $this->selectWithLimit->execute();
    return $this->selectWithLimit->fetchAll();
  }
}

$start = 5;
$limit = 7;
$words = $englishTable->selectWithLimit($start, $limit);

希望对你有帮助,祝朋友新年快乐。

于 2013-01-02T05:05:18.790 回答