我了解它是如何LIMIT
工作的,但我想知道是否有一种方法可以在之前设置数据库查询的起点LIMIT
。这可能吗?我对此有意义吗?
问问题
1922 次
5 回答
5
于 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 回答