مشخصات مقاله
آموزش محدود کردن نتایج Limit در Node.js MySQL
آموزش محدود کردن نتایج (Limit) در MySQL با node.js :
به وسیله کلمه کلیدی LIMIT می توانید تعداد رکوردهایی که در هر جستجو یا Query پایگاه داده MySQL برگردانده می شوند را محدود نمایید.
برای مثال فقط 5 یا 10 عدد رکورد در نتایج خروجی، نمایش داده شوند.
مثال : در کد مثال زیر، قصد داریم تا رکوردهای جدول Customers پایگاه داده mydb را در خروجی نمایش دهیم. اما با به کار بردن دستور LIMIT از Node.js خواسته ایم تا فقط اطلاعات 5 رکورد اول را نمایش دهد :
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); }); });
کد فوق را در فایل "demo_db_limit.js" ذخیره کرده و با دستور زیر، آن را اجرا نمایید :
C:\Users\Your Name>node demo_db_limit.js
خروجی مثال زیر به صورت زیر خواهد بود :
[ { 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'} ]
آموزش شروع خروجی نتایج جستجو از محل مورد نظر در MySQL :
در کد مثال قبل، Node.js،تعداد 5 رکورد اول جدول پایگاه داده MySQL را بر می گرداند اما ممکن است بخواهید به جای ابتدای جدول از میانه آن یا شماره رکورد خاصی شروع کرده و تعداد معینی رکورد پس از آن را نمایش دهید.
در این حالت، موقعیت شروع نتایج جهت خروجی را با کلمه کلیدی OFFSET تعیین می کنیم، به مثال زیر دقت نمایید :
مثال : در کد مثال عملی زیر، از Node.js خواسته ایم تا اطلاعات جدول Customers در پایگاه داده mydb را در خروجی نمایش دهد. به وسیله دستور LIMIT و OFFSET تعیین کرده ایم 5 رکورد را از موقعیت 3 به بعد جدول، نمایش دهد :
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); }); });
دستور “OFFSET2” به معنای این است که از رکورد سوم به بعد، نمایش داده شود نه رکورد دوم! به این نکته دقت نمایید.
کد مثال فوق را در فایل "demo_db_offset.js" ذخیره کرده و با دستور زیر، آن را اجرا نمایید :
C:\Users\Your Name>node demo_db_offset.js
برنامه، تعداد 5 رکورد از موقعیت سوم به بعد را به صورت زیر نشان خواهد داد :
[ { 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'} ]
استفاده از کد کوتاه تر برای دستور OFFSET MySQL :
در هنگام استفاده همزمان دستورات LIMIT و OFFSET با یکدیگر، می توانید کد مثال قبل را به روش کوتاه تری، نیز بنویسید.
مثال عملی : در کد مثال عملی زیر، کد مثال قبل را بازنویسی کرده ایم. در این کد از فرمت ساده تر شبیه “LIMIT 2,5” و حذف کلمه کلیدی OFFSET استفاده کرده ایم که خروجی مشابه تولید می کند :
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); }); });
خروجی کد مثال فوق، همانند مثال بخش قبل خواهد بود :
[ { 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'} ]
توجه داشته باشید که شکل استفاده مثلا مثل “LIMIT2,5” است که معادل دستور “LIMIT 2 OFFSET5” می باشد.