부분출력
쿼리 다음에 LIMIT 숫자만 작성하는 것은 상단 데이터의 일부를 선택하는 것입니다. 대시보드(dashboard)와 같이 데이터의 상위 몇 개만 출력할 때는 이와 같은 간단한 출력 제한은 편리합니다.
하지만 제일 상단이 아닌 중간의 일부분만을 데이터로 읽어오고자 할 경우에는 LIMIT 인 자를 더 주어야 합니다.
| 쿼리 문법 |
SELECT 컬럼명, 컬럼명, … FROM 테이블명 LIMIT 시작, 표시할 수;
LIMIT 다음에 콤마 (,)를 통하여 시작 값과 출력할 개수를 지정하면 데이터의 일부 영역의 내용만 제한하여 출력할 수 있습니다.
콘솔 실습
시작 값은 데이터를 출력할 offset과 같은 성격을 가집니다. 데이터의 출력 위치를 이동후에 지정한 데이터의 수만큼 읽어서 화면에 출력합니다.
| 예제 쿼리 |
select code from orders limit 2, 3;
주문 목록에서 위치를 2로 이동한 다음에 연속된 3개의 데이터를 출력합니다.
| 콘솔 실습 화면 |
mysql> select code from orders limit 2, 3; +-------+ | code | +-------+ | O_003 | | O_004 | | O_005 | +-------+ 3 rows in set (0.00 sec)
따라서 두 번째 데이터부터 연속된 3개의 데이터만 출력합니다.
PHP 실습
PHP 코드를 이용하여 데이터의 일정 부분의 영역을 출력합니다.
예제 파일 | limit-02.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,3);
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 ,3
tables fields = 3
0=stdClass Object ( [Id] => 3 [FirstName] => kim [LastName] => james )
1=stdClass Object ( [Id] => 5 [FirstName] => jiny [LastName] => 1234 )
2=stdClass Object ( [Id] => 6 [FirstName] => jiny [LastName] => 1234 )