Sunday, November 19, 2017

Belajar Node.js Part 21 - Limit MySQL




Kita bisa membatasi jumlah records yang dikembalikan dari query dengan menggunakan pernyataan "LIMIT".

Contohnya, jika kita ingin menyeleksi 5 record pertama dari tabel "pelanggans":

var mysql = require('mysql');

var connection = mysql.createConnection({
  host: "localhost",
  user: "nama_anda",
  password: "password_anda",
  database: "dbsaya"
});

connection.connect(function(err) {
  if (err) throw err;
  var sql = "SELECT * FROM pelanggans LIMIT 5";
  connection.query(sql, function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});

Simpan kode tersebut dengan nama "mysql_14.js", kemudian jalankan perintah ini:
node mysql_14.js
Hasilnya akan seperti ini:

[
  { id: 1, name: 'Jack1', address: 'Jalan Linggis 7'},
  { id: 2, name: 'Jack2', address: 'Jalan Linggis 4'},
  { id: 3, name: 'Jack3', address: 'Jalan Linggis 6'},
  { id: 4, name: 'Jack4', address: 'Jalan Linggis 2'},
  { id: 5, name: 'Jack5', address: 'Jalan Linggis 3'}
]

Memulai dari Posisi yang Lain

Jika kita ingin mengembalikan 5 record, dimulai dari record ke-3, kita bisa menggunakan keyword "OFFSET".

Contohnya, jika kita ingin memulai dari posisi 3, kemudian mengembalikan 5 record:

var mysql = require('mysql');

var connection = mysql.createConnection({
  host: "localhost",
  user: "nama_anda",
  password: "password_anda",
  database: "dbsaya"
});

connection.connect(function(err) {
  if (err) throw err;
  var sql = "SELECT * FROM pelanggans LIMIT 5 OFFSET 2";
  connection.query(sql, function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});

[MY_ADS/]

Simpan kode tersebut dengan nama "mysql_15.js", kemudian jalankan perintah ini:
node mysql_15.js
Hasilnya akan seperti ini:

[
  { id: 3, name: 'Jack3', address: 'Jalan Linggis 6'},
  { id: 4, name: 'Jack4', address: 'Jalan Linggis 2'},
  { id: 5, name: 'Jack5', address: 'Jalan Linggis 3'},
  { id: 6, name: 'Jack6', address: 'Jalan Linggis 32'},
  { id: 7, name: 'Jack7', address: 'Jalan Linggis 38'}
]

Sintaks yang Lebih Pendek

Kita juga bisa menggunakan "LIMIT 2, 5" untuk mendapatkan hasil yang sama dengan contoh di atas.

Contohnya, mulai dari posisi 3, kemudian kembalikan 5 recordnya:

var mysql = require('mysql');

var connection = mysql.createConnection({
  host: "localhost",
  user: "nama_anda",
  password: "password_anda",
  database: "dbsaya"
});

connection.connect(function(err) {
  if (err) throw err;
  var sql = "SELECT * FROM pelanggans LIMIT 2, 5";
  connection.query(sql, function (err, result) {
    if (err) throw err;
    console.log(result);
  });
});

Catatan: "LIMIT 2, 5" sama dengan "LIMIT 5 OFFSET 2"

Sumber:
https://www.w3schoools.com