Hướng dẫn limit nodejs - giới hạn nodejs
Bạn có thể giới hạn số lượng bản ghi được trả về từ truy vấn, bằng cách sử dụng câu lệnh "LIMIT". Ví dụ sau sẽ lấy 3 bản ghi đầu tiên trong bảng "customers": var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "", database: "nodejs_db" }); con.connect(function(err) { if (err) throw err; var sql = "SELECT * FROM customers LIMIT 3"; con.query(sql, function (err, result) { if (err) throw err; console.log(result); }); }); Lưu mã ở trên vào tệp có tên "demo_db_limit.js" và chạy tệp: C:\Users\Your Name>node demo_db_limit.js Kết quả: [ RowDataPacket { name: 'V1Study', address: 'Hà Nội', id: 1 }, RowDataPacket { name: 'Long', address: 'Hà Nội', id: 2 }, RowDataPacket { name: 'Phương', address: 'Hà Nam', id: 3 }] Bắt đầu từ một vị trí khácNếu bạn muốn trả về 2 bản ghi bắt đầu từ bản ghi thứ 2 thì bạn có thể sử dụng từ khóa "OFFSET" như ví dụ sau: var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "yourusername", password: "yourpassword", database: "mydb" }); con.connect(function(err) { if (err) throw err; var sql = "SELECT * FROM customers LIMIT 2 OFFSET 1"; con.query(sql, function (err, result) { if (err) throw err; console.log(result); }); });
Lưu mã ở trên vào một tệp có tên "demo_db_offset.js" và chạy tệp: C:\Users\Your Name>node demo_db_offset.js Kết quả: [ RowDataPacket { name: 'V1Study', address: 'Hà Nội', id: 1 }, RowDataPacket { name: 'Long', address: 'Hà Nội', id: 2 }, RowDataPacket { name: 'Phương', address: 'Hà Nam', id: 3 }] Bắt đầu từ một vị trí khácNếu bạn muốn trả về 2 bản ghi bắt đầu từ bản ghi thứ 2 thì bạn có thể sử dụng từ khóa "OFFSET" như ví dụ sau: var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "yourusername", password: "yourpassword", database: "mydb" }); con.connect(function(err) { if (err) throw err; var sql = "SELECT * FROM customers LIMIT 1, 2"; con.query(sql, function (err, result) { if (err) throw err; console.log(result); }); });
Lưu mã ở trên vào một tệp có tên "demo_db_offset.js" và chạy tệp: C:\Users\Your Name>node demo_db_offset.js [ RowDataPacket { name: 'Long', address: 'Hà Nội', id: 2 }, RowDataPacket { name: 'Phương', address: 'Hà Nam', id: 3 }] Cú pháp ngắn hơn Bạn cũng có thể viết câu lệnh SQL của mình như thế này "LIMIT 1, 2", và nó cũng sẽ trả về kết quả giống như ví dụ sử dụng OFFSET ở trên: Lưu ý: "LIMIT 1, 2" tương đương với "LIMIT 2 OFFSET 1". 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à 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 var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "yourusername", password: "yourpassword", database: "mydb" }); con.connect(function(err) { if (err) throw err; var sql = "SELECT * FROM customers LIMIT 2 OFFSET 1"; con.query(sql, function (err, result) { if (err) throw err; console.log(result); }); });0 |