我理解LIMIT
的工作原理,但我想知道是否有办法在LIMIT
之前设置数据库查询的起点。这可能吗?我对此有意义吗?
答案 0 :(得分:5)
答案 1 :(得分: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
答案 2 :(得分:2)
SELECT * FROM MyTable LIMIT [startpoint], [row_count]
起点是可选的,默认为第一行。指定起点将跳过记录n次并从[startpoint]
开始计数SELECT * FROM MyTable LIMIT 5, 15
这将显示从第5条记录开始的15条记录。
SELECT * FROM MyTable LIMIT 7
相当于SELECT * FROM MyTable LIMIT 0,7
答案 3 :(得分:0)
我会给你一个从这里学习的演示
SELECT * FROM `your_table` LIMIT 0, 10
这将显示数据库中的前10个结果。
答案 4 :(得分: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);
希望这会有所帮助,新年快乐的朋友。