Limit Data

Last updated on

There are situations where you only need a specific number of rows returned. This is where the "LIMIT" clause in MySQL comes. It allows you to control the number of data rows retrieved, making your queries more manageable in PHP.

You will learn how to use LIMIT in MySQL queries with PHP, along with examples. Let's get started.

What is the LIMIT Clause?

The LIMIT clause in MySQL specifies the maximum number of data rows to return. You can also define an offset to indicate where the results should start.

Here is the general syntax:

SELECT column_name(s) FROM table_name LIMIT offset, row_count;
  • offset: Indicates the starting point for the result set.
  • row_count: Specifies the number of rows to retrieve.

In the following sections, you will see more examples in PHP and MySQL.

Examples of PHP MySQL Limit Data

Suppose you have a table named employees and you want to fetch the first five entries. Here is how you can achieve that using PHP and MySQL:

$sqlconne = new mysqli("localhost", "root", "", "company");

if ($sqlconne->connect_error) {
    die("Connection failed: " . $sqlconne->connect_error);
}

$qrsql = "SELECT id, name, department FROM employees LIMIT 5";
$qryresult = $sqlconne->query($qrsql);

if ($qryresult->num_rows > 0) {
    while ($row = $qryresult->fetch_assoc()) {
        echo "ID: " . $row['id'] . " - Name: " . $row['name'] . " - Department: " . $row['department'] . "<br>";
    }
} else {
    echo "No records found.";
}

$sqlconne->close();

The LIMIT 5 statement ensures only five rows are retrieved, regardless of the total number of rows in the employees table.

Pagination Example

Here is another example for pagination. This helps us to see data in chunks rather than all at once.This is an example shows you how it works:

$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$items_per_page = 10;
$offset = ($page - 1) * $items_per_page;

$qrsql = "SELECT id, name FROM employees LIMIT $offset, $items_per_page";
$qryresult= $sqlconne->query($qrsql );

if ($qryresult->num_rows > 0) {
    while ($row = $qryresult->fetch_assoc()) {
        echo "ID: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
    }
} else {
    echo "No records found.";
}

echo "<a href='?page=" . ($page - 1) . "'>Previous</a> | <a href='?page=" . ($page + 1) . "'>Next</a>";

$sqlconne->close();
  • $offset determines the starting row for each page.
  • $items_per_page specifies how many rows to display per page.

This way dynamically adjusts the query based on the current page.

Skip a Few Rows

Sometimes, you may need to skip a few rows and fetch the next set. For instance, to fetch rows 6 through 10:

$qrsql = "SELECT id, name FROM employees LIMIT 5, 5";
$qryresult= $sqlconne->query($qrsql );

if ($qryresult->num_rows > 0) {
    while ($row = $qryresult->fetch_assoc()) {
        echo "ID: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
    }
} else {
    echo "No records found.";
}

$sqlconne->close();
  • The LIMIT 5, 5 retrieves five rows starting from the sixth row.

This method is useful when you know the exact range of data you want.

Retrieve Data in a Specific Order

You can use LIMIT with ORDER BY to retrieve data in a specific order. For instance, fetching the top three highest-paid employees:

$qrsql = "SELECT name, salary FROM employees ORDER BY salary DESC LIMIT 3";
$qryresult= $sqlconne->query($qrsql );

if ($qryresult->num_rows > 0) {
    while ($row = $qryresult->fetch_assoc()) {
        echo "Name: " . $row['name'] . " - Salary: $" . $row['salary'] . "<br>";
    }
} else {
    echo "No records found.";
}

$sqlconne->close();

The ORDER BY salary DESC ensures the results are sorted in descending order before applying the LIMIT clause.

Let's summarize it.

Wrapping Up

The MySQL LIMIT data in PHP is a useful tool for managing data retrieval in MySQL. So if you are implementing pagination, fetching specific rows, or sorting results, combining LIMIT with PHP ensures your queries remain scalable.

Thank you for being at th end. Click here to see more PHP tutorials. Happy Coding!

Frequently Asked Questions (FAQs)

  • What is the purpose of the MySQL LIMIT clause?

    The MySQL LIMIT clause is used to specify the number of rows to retrieve from a query. It allows you to control the amount of data returned, making queries more efficient and manageable.
  • How do I use LIMIT to retrieve the first 10 rows in a table?

    SELECT * FROM table_name LIMIT 10;
  • How can I implement pagination with LIMIT in PHP?

    $page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
    $items_per_page = 10;
    $offset = ($page - 1) * $items_per_page;
    
    $sql = "SELECT * FROM table_name LIMIT $offset, $items_per_page";
  • What is the difference between OFFSET and LIMIT?

    LIMIT specifies the maximum number of rows to retrieve, while OFFSET determines the starting point for data retrieval. Together, they define a range for the query results.
  • Can I use LIMIT with ORDER BY?

    Yes, LIMIT is often combined with ORDER BY to fetch a specific number of rows in a desired order. For example:
    SELECT * FROM table_name ORDER BY column_name DESC LIMIT 5;
Share on: