데이터베이스 시스템에 검색을 위하여 명령 쿼리를 실행합니다. 만일 실행되는 쿼리에 일 치하는 조건의 데이터가 많을 경우 처리 시간은 오래 걸립니다. 또한 많은 출력 결과물을 처리하여 보기 좋게 화면에 출력하는 것 또한 오래 걸릴 것입니다.
빠른 처리와 가독성을 위해서 데이터를 나누어서 표시합니다. 이때 사용할 수 있는 키워 드가 LIMIT입니다. LIMIT 키워드는 출력되는 데이터의 개수를 제한합니다.
| 쿼리 문법 |
SELECT 컬럼명, 컬럼명, … FROM 테이블명 LIMIT 표시할 수;
13.1.1 쿼리 실습
쿼리의 맞는 데이터 검색을 처리하는데 LIMIT에서 지정한 숫자만큼의 데이터만 가지고 옵니다.
| 예제 쿼리 |
select code from orders limit 5;
주문 목록에서 데이터를 가지고 오는데 제일 위에서부터 5개만 가지고 옵니다. 이를 위해 서 쿼리 뒤에 limit 5 명령을 추가했습니다.
| 콘솔 실습 화면 |
mysql> select code from orders limit 5;
+-------+
| code |
+-------+
| O_001 |
| O_002 |
| O_003 |
| O_004 |
| O_005 |
+-------+
5 rows in set (0.00 sec)
데이터를 5개만 출력합니다.
13.1.2 PHP 실습
PHP 코드를 이용하여 데이터 제한을 실습합니다.
| PHP 예제 | mysql.class.php 파일에 메서드 예제를 추가합니다.
// 입력된 쿼리의 출력제한 limit를 설정합니다.
public function limit($query, $a, $b)
{
$queryString = $query . " limit $a ";
If ($b) {
$queryString .= ",".$b;
}
return $queryString;
}
예제 파일 | limit-01.php
<?php
include "dbinfo.php";
include "mysql.class.php";
// ++ Mysqli DB 연결.
$db = new JinyMysql();
// 기본 select 쿼리
$query = "SELECT Id, FirstName, LastName FROM members";
// 기본쿼리에 limit 제한을 설정합니다.
$queryString = $db->limit($query,2);
if ($rowss = $db->selectRowss($queryString)) {
echo "tables fields = ". count($rowss) . "<br>";
for ($i=0;$i<count($rowss);$i++) {
echo $i."=";
print_r($rowss[$i]);
echo "<br>";
}
}
?>
화면 출력
mysql connected!
쿼리성공] SELECT Id, FirstName, LastName FROM members limit 2
tables fields = 2
0=stdClass Object ( [Id] => 1 [FirstName] => lee [LastName] => hojin )
1=stdClass Object ( [Id] => 2 [FirstName] => [LastName] => jiny )