Database Tutorials SQL Query তে LIMIT এবং OFFSET ব্যবহার গাইড ও নোট

325

LIMIT এবং OFFSET হল MySQL-এর দুটি গুরুত্বপূর্ণ কমান্ড যা SQL কোয়েরি থেকে নির্দিষ্ট পরিমাণ রেকর্ড রিটার্ন করার জন্য ব্যবহৃত হয়। সাধারণত LIMIT এবং OFFSET একসাথে ব্যবহার করা হয়, বিশেষ করে যখন আপনি পেজিনেশন (pagination) করতে চান, অর্থাৎ ডাটাবেস থেকে একসাথে সব রেকর্ড না নিয়ে, শুধুমাত্র নির্দিষ্ট পরিমাণ রেকর্ডের একটি অংশ নিয়ে কাজ করতে চান।


1. LIMIT

LIMIT ক্লজটি ব্যবহার করা হয় একটি SQL কোয়েরি থেকে রিটার্ন হওয়া রেকর্ডের সংখ্যা সীমাবদ্ধ করতে। এটি এক বা একাধিক রেকর্ড রিটার্ন করতে ব্যবহৃত হয়।

1.1 LIMIT এর ব্যবহার

SELECT * FROM users LIMIT 5;

এই কোয়েরি ৫টি রেকর্ড রিটার্ন করবে, যেগুলো users টেবিলের প্রথম ৫টি রেকর্ড হবে।

1.2 LIMIT এবং OFFSET একসাথে ব্যবহার

LIMIT এবং OFFSET একসাথে ব্যবহৃত হলে, আপনি কোয়েরি থেকে নির্দিষ্ট রেকর্ডের পরিমাণ এবং শুরু পয়েন্ট নির্ধারণ করতে পারেন।

SELECT * FROM users LIMIT 5 OFFSET 10;

এই কোয়েরি users টেবিলের ১০তম রেকর্ড থেকে শুরু করে পরবর্তী ৫টি রেকর্ড রিটার্ন করবে। অর্থাৎ, প্রথম ১০টি রেকর্ড স্কিপ করার পর পরবর্তী ৫টি রেকর্ড পাওয়া যাবে।


2. OFFSET

OFFSET মূলত LIMIT এর সাথে ব্যবহৃত হয় এবং এটি রেকর্ডের শুরু পয়েন্ট নির্দেশ করে। OFFSET দ্বারা আপনি কোয়েরি থেকে কতটি রেকর্ড স্কিপ করতে চান তা নির্ধারণ করতে পারেন।

2.1 OFFSET এর ব্যবহার

SELECT * FROM users LIMIT 5 OFFSET 10;

এই কোয়েরি ১০টি রেকর্ড স্কিপ করবে এবং ১১তম রেকর্ড থেকে পরবর্তী ৫টি রেকর্ড রিটার্ন করবে।

2.2 OFFSET এর সমতুল্য ব্যবহার

MySQL-এ আপনি LIMIT এর দ্বিতীয় প্যারামিটার হিসেবেও OFFSET এর কাজ করতে পারেন:

SELECT * FROM users LIMIT 10, 5;

এই কোয়েরি users টেবিলের ১১তম রেকর্ড থেকে শুরু করে পরবর্তী ৫টি রেকর্ড রিটার্ন করবে। এখানে প্রথম প্যারামিটার (১০) OFFSET এবং দ্বিতীয় প্যারামিটার (৫) হল LIMIT


3. PHP তে LIMIT এবং OFFSET ব্যবহার করা

PHP-তে LIMIT এবং OFFSET ব্যবহার করে SQL কোয়েরি তৈরি করার জন্য, আপনি সাধারণত একটি পেজিনেশন সিস্টেম তৈরি করতে পারেন। এটি ব্যবহারকারীদের ডাটাবেস থেকে একসাথে সব রেকর্ড না দেখিয়ে, নির্দিষ্ট পরিমাণ রেকর্ড দেখাতে সহায়তা করে।

3.1 LIMIT এবং OFFSET দিয়ে পেজিনেশন উদাহরণ

ধরি, আমাদের users টেবিল আছে এবং আমরা প্রতিটি পেজে ১০টি রেকর্ড দেখাতে চাই। আমরা LIMIT এবং OFFSET ব্যবহার করে কোয়েরি তৈরি করব, যাতে পেজ নেভিগেশন করতে পারি।

Step 1: পেজ নাম্বার নির্ধারণ করা

প্রথমে, আমরা ইউজারের অনুরোধ অনুযায়ী পেজ নাম্বার নির্ধারণ করব। ধরি, ইউজারের পেজ ১ থেকে পেজ ৫ পর্যন্ত দেখতে চাই।

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";

// ডাটাবেস সংযোগ
$conn = new mysqli($servername, $username, $password, $dbname);

// সংযোগ চেক করা
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// পেজ নাম্বার নির্ধারণ
$page = isset($_GET['page']) ? $_GET['page'] : 1; // পেজ নাম্বার (যদি না থাকে, তাহলে ১ ধরে নেবে)
$limit = 10; // প্রতি পেজে ১০টি রেকর্ড
$offset = ($page - 1) * $limit; // ক্যালকুলেটেড অফসেট

// LIMIT এবং OFFSET সহ কোয়েরি
$sql = "SELECT * FROM users LIMIT $limit OFFSET $offset";
$result = $conn->query($sql);

// রেকর্ড দেখানো
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "ID: " . $row["id"] . " - Name: " . $row["name"] . " - Email: " . $row["email"] . "<br>";
    }
} else {
    echo "No results found";
}

// পেজিনেশন লিঙ্ক তৈরি
$total_query = "SELECT COUNT(*) AS total FROM users";
$total_result = $conn->query($total_query);
$total_row = $total_result->fetch_assoc();
$total_records = $total_row['total'];
$total_pages = ceil($total_records / $limit); // মোট পেজ সংখ্যা

echo "<br>Pages: ";
for ($i = 1; $i <= $total_pages; $i++) {
    echo "<a href='?page=$i'>$i</a> ";
}

$conn->close();
?>
Step 2: ফলাফল এবং পেজিনেশন দেখানো

এখন, এই কোডটি users টেবিল থেকে রেকর্ড দেখাবে এবং পেজিনেশন লিঙ্ক তৈরি করবে। যদি আপনি page=2 URL প্যারামিটার যোগ করেন, তবে পরবর্তী ১০টি রেকর্ড দেখাবে, এবং এরকম চলতে থাকবে।


4. LIMIT এবং OFFSET এর সুবিধা

  • পেজিনেশন: LIMIT এবং OFFSET পেজিনেশন তৈরি করতে সহায়তা করে, যা ব্যবহারকারীকে একে একে রেকর্ড দেখতে দেয়।
  • পারফরম্যান্স: যখন ডাটাবেসে অনেক রেকর্ড থাকে, তখন LIMIT এবং OFFSET ব্যবহার করে শুধুমাত্র প্রয়োজনীয় রেকর্ডগুলো ডাটা রিট্রিভ করা হয়, যার ফলে পারফরম্যান্স উন্নত হয়।
  • রেকর্ডের পরিমাণ নিয়ন্ত্রণ: আপনি চাইলে শুধুমাত্র কিছু সংখ্যক রেকর্ড রিটার্ন করতে পারেন, যেমন ১০টি, ২০টি, ৫০টি, ইত্যাদি।

5. LIMIT এবং OFFSET এর কিছু দৃষ্টান্ত

  • SELECT প্রথম ১০টি রেকর্ড:
SELECT * FROM users LIMIT 10;
  • SELECT ১০টি রেকর্ড ১১তম থেকে শুরু করে:
SELECT * FROM users LIMIT 10 OFFSET 10;
  • SELECT ৫টি রেকর্ড দ্বিতীয় পেজ থেকে (১০ রেকর্ড প্রতি পেজ):
SELECT * FROM users LIMIT 5 OFFSET 10;

সারাংশ

LIMIT এবং OFFSET SQL কোয়েরির মধ্যে খুবই কার্যকর টুলস। LIMIT ব্যবহার করে আপনি ডাটা লিমিট করতে পারেন, এবং OFFSET দ্বারা আপনি কোন পয়েন্ট থেকে ডাটা পড়া শুরু করবেন তা নির্ধারণ করতে পারেন। সাধারণত এগুলো পেজিনেশন ব্যবস্থায় ব্যবহার হয়, যেখানে আপনি একটি নির্দিষ্ট পরিমাণ রেকর্ড দেখতে চান এবং পরবর্তী পেজের জন্য ইউজারকে নির্দেশ দিতে চান। PHP তে এগুলোর ব্যবহারে ডাটাবেস থেকে ডাটা লোড করার প্রক্রিয়া আরও দক্ষ এবং পারফর্ম্যান্স উন্নত হয়।

Content added By
Promotion

Are you sure to start over?

Loading...