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