Giới hạn MySQL của Node.js


Giới hạn kết quả

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":

Thí dụ

Chọn 5 bản ghi đầu tiên trong bảng "khách hàng":

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 5";
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});

Lưu đoạn mã trên vào tệp có tên "demo_db_limit.js" và chạy tệp:

Chạy "demo_db_limit.js"

C:\Users\Your Name>node demo_db_limit.js

Điều này sẽ cung cấp cho bạn kết quả này:

[
  { id: 1, name: 'John', address: 'Highway 71'},
  { id: 2, name: 'Peter', address: 'Lowstreet 4'},
  { id: 3, name: 'Amy', address: 'Apple st 652'},
  { id: 4, name: 'Hannah', address: 'Mountain 21'},
  { id: 5, name: 'Michael', address: 'Valley 345'}
]


Bắt đầu từ một vị trí khác

Nếu bạn muốn trả về năm bản ghi, bắt đầu từ bản ghi thứ ba, bạn có thể sử dụng từ khóa "OFFSET":

Thí dụ

Bắt đầu từ vị trí 3 và trả về 5 bản ghi tiếp theo:

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 5 OFFSET 2";
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});

Lưu ý: "OFFSET 2", có nghĩa là bắt đầu từ vị trí thứ ba, không phải thứ hai!

Lưu đoạn mã trên vào một tệp có tên "demo_db_offset.js" và chạy tệp:

Chạy "demo_db_offset.js"

C:\Users\Your Name>node demo_db_offset.js

Điều này sẽ cung cấp cho bạn kết quả này:

[
  { id: 3, name: 'Amy', address: 'Apple st 652'},
  { id: 4, name: 'Hannah', address: 'Mountain 21'},
  { id: 5, name: 'Michael', address: 'Valley 345'},
  { id: 6, name: 'Sandy', address: 'Ocean blvd 2'},
  { id: 7, name: 'Betty', address: 'Green Grass 1'}
]

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 2, 5" trả về giống như ví dụ bù đắp ở trên:

Thí dụ

Bắt đầu từ vị trí 3 và trả về 5 bản ghi tiếp theo:

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, 5";
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});

Lưu ý: Các số bị đảo ngược: "LIMIT 2, 5" giống như "LIMIT 5 OFFSET 2"