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