Code ví dụ Node.js MySQL – Phân trang với LIMIT, OFFSET
(Xem thêm: Tự học Node.js qua ví dụ)
MySQL LIMIT – OFFSET
Giả sử bạn đã có sẵn database demo với table customer (id, name, address)
(Xem lại: Code ví dụ node.js tạo database, tạo table)
CREATE DATABASE demo; CREATE TABLE demo.customer (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255));
và insert sẵn các bản ghi sau:
INSERT INTO `demo`.`customer` (`name`, `address`) VALUES ('kai', 'ha noi - viet nam');
INSERT INTO `demo`.`customer` (`name`, `address`) VALUES ('sena', 'vinh phuc - viet nam');
INSERT INTO `demo`.`customer` (`name`, `address`) VALUES ('iron man', 'new york - usa');
INSERT INTO `demo`.`customer` (`name`, `address`) VALUES ('batman', 'gotham - usa');
INSERT INTO `demo`.`customer` (`name`, `address`) VALUES ('bruce lee', 'hong kong - china');
Câu lệnh SELECT 2 đối tượng customer: "SELECT * FROM customer LIMIT 2"
Câu lệnh SELECT 2 đối tượng customer bắt đầu từ vị trí thứ 2: "SELECT * FROM customer LIMIT 2 OFFSET 2" hoặc SELECT * FROM demo.customer LIMIT 2, 2
Khi muốn phân trang (paging) thì ta xác định số phần tử của 1 trang và số phần tử được skip.
Ví dụ 1 trang có 10 phần tử, và muốn query trang thứ 3 thì ta cần skip qua 2 trang đầu tức là skip qua 20 phần tử (OFFSET = 20). Kích thước trang là 10 nên giá trị LIMIT sẽ là 10.
Câu lệnh SQL trong ví dụ này sẽ là "SELECT * FROM customer LIMIT 10 OFFSET 20"
Code ví dụ Node.js MySQL Paging.
Trong ví dụ này mình sẽ sử dụng database đã tạo bên trên. Thực hiện query 2 bản ghi kể từ bản ghi thứ 2:
(nhớ phải cài module mysql trước nhé
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
port: "3306",
user: "root",
password: "admin1234",
database: "demo"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
});
var sql = "SELECT * FROM customer LIMIT 2 OFFSET 2";
con.query(sql, function (err, result, fields) {
if (err) throw err;
console.log(result);
});
con.end(function(err) {
if (err) throw err;
console.log("Closed!");
});
Chạy file index.js



