📜  如何使用 MySQL 对 Node.js 进行分页?(1)

📅  最后修改于: 2023-12-03 15:08:22.966000             🧑  作者: Mango

如何使用 MySQL 对 Node.js 进行分页?

在Node.js项目中,我们经常需要对数据库进行分页查询来优化数据展示和效率,MySQL数据库也不例外。本文将介绍如何使用MySQL对Node.js进行分页查询。

准备工作

在开始分页查询之前,我们需要先安装MySQL和Node.js,并在Node.js中安装mysql模块。

npm install mysql
分页查询

下面是分页查询的实现代码:

const mysql = require('mysql');
const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'password',
    database: 'database'
});

const perPage = 10; //每页显示10条数据

connection.query(`SELECT COUNT(*) as total FROM users`, (err, result) => {
    if (err) throw err;
    const total = result[0].total; //总共的记录数
    const totalPages = Math.ceil(total / perPage); //总共的页数

    const page = req.query.page || 1; //获取当前页数,默认为第一页
    const offset = (page - 1) * perPage; //需要跳过的记录数

    const sql = `SELECT * FROM users LIMIT ${offset}, ${perPage}`; //分页查询Sql语句
    connection.query(sql, (err, rows) => {
        if (err) throw err;
        res.render('index', {
            rows,
            totalPages,
            currentPage: page
        });
    });
});
分页查询的实现原理

分页查询的实现原理就是通过 LIMIT 子句来限制查询记录的数量和偏移量。以每页显示10条数据为例,第一页的偏移量为0,第二页的偏移量为10,以此类推。

总结

本文主要介绍了如何使用MySQL对Node.js进行分页查询,具体实现方式是通过 LIMIT 子句来限制查询记录的数量和偏移量,而每个页面的偏移量可以通过当前页数算出。