Code ví dụ Node.js MySQL – Phân trang với LIMIT, OFFSET

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 databasetạ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');

Code ví dụ Node.js MySQL - Phân trang với LIMIT, OFFSET

Câu lệnh SELECT 2 đối tượng customer: "SELECT * FROM customer LIMIT 2"

Code ví dụ Node.js MySQL - Phân trang với LIMIT, OFFSET

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

Code ví dụ Node.js MySQL - Phân trang với LIMIT, OFFSET

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

Code ví dụ Node.js MySQL - Phân trang với LIMIT, OFFSET

 

Okay, done!

Download code ví dụ trên tại đây.

 

Referneces:

https://www.npmjs.com/package/mysql

stackjava.com